社区讨论
T3特殊点A,不知道为什么过不了,代码贴下面了
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo5nl5ua
- 此快照首次捕获于
- 2023/10/25 19:09 2 年前
- 此快照最后确认于
- 2023/11/02 11:26 2 年前
CPP
//CSP-S加油,rp++
//jmyzq & yzt
//哪怕全世界都背叛你,我也不会
//为你战死是我至高无上的荣耀
//T组数据不要忘记初始化!!!!!!!!
//最大值不要开小
//注意算内存,本地看不出来MLE的
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int M=5e5+5;
//--------------------------输入所需
int op;
string s;
int k;
string t,n;
string anss;
int addr;
//--------------------------map,和一些需要
map<string,int> mps;//字符串对应的首地址
map<int,string> ad;//地址对应的字符串
int add;//当前地址
void solve1()
{
}
void solve2()
{
cin>>t>>n;
if(t=="byte")
{
mps[n]=add;
ad[add]=n;
add++;
}
else if(t=="short")
{
while(add%2)
{
ad[add]="ERR";
++add;
}
mps[n]=add;
ad[add]=n;
ad[add+1]=n;
add+=2;
}
else if(t=="int")
{
while(add%4)
{
ad[add]="ERR";
++add;
}
mps[n]=add;
for(int i=1;i<=4;++i)
{
ad[add]=n;
++add;
}
}
else if(t=="long")
{
while(add%8)
{
ad[add]="ERR";
++add;
}
mps[n]=add;
for(int i=1;i<=8;++i)
{
ad[add]=n;
++add;
}
}
}
void solve3()
{
cin>>s;
cout<<mps[s]<<"\n";
}
void solve4()
{
cin>>addr;
cout<<ad[addr]<<"\n";
}
int main()
{
// freopen("struct.in","r",stdin);
// freopen("struct.out","w",stdout);
int T;
cin>>T;//n
add=0;//刚开始地址是0
while(T--)
{
scanf("%d",&op);
if(op==1)
{
solve1();
}
if(op==2)
{
solve2();
}
if(op==3)
{
solve3();
}
if(op==4)
{
solve4();
}
// cout<<add<<"\n";
}
// cout<<a[1];
// cout<<ad[4]<<"\n"<<ad[7]<<"\n";
return 0;
}
/*
10
2 int a
2 long b
2 byte c
2 short d
*/
回复
共 0 条回复,欢迎继续交流。
正在加载回复...