BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #89100同步于 2016/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

[求助]bupt oj84single number和91文件系统

z564808896
2016/3/14镜像同步11 回复
两道题交到OJ上老是错,研究几天了不知道哪的错,有没有大神帮忙看看。 传送门:http://code.bupt.edu.cn/problem/p/84/ http://code.bupt.edu.cn/problem/p/91/ 84: #include <iostream> #include <string> #include <cstdlib> #include <cstdio> using namespace std; int main() { int n,*a; while(cin>>n) { a=new int [n]; for (int i = 0; i < n; i++) { cin>>a[i]; } for(int i=0,res=0;i<n;i++) { for (int j = 0; j < n; j++) { if (i!=j&&a[i]==a[j]) { res=0; break; } res=1; } if (res==1) { printf("%d\n",a[i]); } } delete [] a; } return 0; } 91: #include <cstdlib> #include <cstdio> #include <iostream> #include <string> using namespace std; typedef struct TNode { int filenum; string name; string father; string file[100]; }Node; int main() { int n; cin>>n; while (n--) { Node dir[100]; int dirnum=1; dir[0].filenum=0; dir[0].name="root"; int m; string ins,inss,name1,name2; cin>>m; for (int i = 0; i < m; i++) { fflush(stdin); getline(cin,ins); inss=ins.substr(ins.find(" ")+1); name1=inss.substr(0,inss.find(" ")); if (ins.substr(0,ins.find(" "))=="CREATEFILE") { name2=inss.substr(inss.find(" ")+1); for (int j = 0; j < dirnum; j++) { if (dir[j].name==name2) { dir[j].father=name2; dir[j].file[dir[j].filenum++]=name1; break; } } } else if (ins.substr(0,ins.find(" "))=="CREATEDIR") { name2=inss.substr(inss.find(" ")+1); dir[dirnum].father=name2; dir[dirnum].filenum=0; dir[dirnum].name=name1; dirnum++; } else if (ins.substr(0,ins.find(" "))=="LISTFILE") { for (int j = 0; j < dirnum; j++) { if (dir[j].name==name1) { for (int k = 0; k < dir[j].filenum; k++) { cout<<dir[j].file[k]<<endl; } } } } else if (ins.substr(0,ins.find(" "))=="LISTDIR") { for (int j = 0; j < dirnum; j++) { if (dir[j].father==name1) { cout<<dir[j].name<<endl; } } } } } return 0; }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
z564808896机器人#1 · 2016/3/14
感觉并没有人理我.............
prison机器人#2 · 2016/3/14
84题 你开int太小了,存不下,比如随便出一组数据 4 100000000000000000 100000000000000000 100000000000000000 100000000000000006 你的结果就溢出了
z564808896机器人#3 · 2016/3/15
但是开long long就会超时.... 【 在 prison 的大作中提到: 】 : 84题 : 你开int太小了,存不下,比如随便出一组数据 : 4 : 100000000000000000 100000000000000000 100000000000000000 10000000 : ......... 发自「贵邮」
Thomas0726机器人#4 · 2016/3/15
【 在 z564808896 的大作中提到: 】 : 感觉并没有人理我............. 怎么讲。。。光贴代码链接,不给题意、大致思路、代码解释,本身就不是很尊重其他人的时间。。
z564808896机器人#5 · 2016/3/15
不好意思啊,因为考虑到最近很多考研的在刷OJ,而且这两道题思路逻辑并不复杂,我想应该有人遇到这些问题就没赘述。 第一道题我想的就是很简单的二重循环,把仅一个的元素输出。 第二道题定义结构数组,用来表示目录,而文件则是结构成员,然后根据题意进行简单的create和list。 【 在 Thomas0726 的大作中提到: 】 : 怎么讲。。。光贴代码链接,不给题意、大致思路、代码解释,本身就不是很尊重其他人的时间。。
chinapds机器人#6 · 2016/3/15
第一个高效的方法似乎是模拟三进制? 第二题当年复试的时候真的搞了一个树,已知 wa。最后半个小时用直接用数组过的好像。。。
Thomas0726机器人#7 · 2016/3/15
【 在 z564808896 的大作中提到: 】 : 不好意思啊,因为考虑到最近很多考研的在刷OJ,而且这两道题思路逻辑并不复杂,我想应该有人遇到这些问题就没赘述。 : 第一道题我想的就是很简单的二重循环,把仅一个的元素输出。 : 第二道题定义结构数组,用来表示目录,而文件则是结构成员,然后根据题意进行简单的create和list。 第一题:正常想法是模拟三进制,也有一种类似用卡诺图推一系列位运算的,更高效 第二题:纯模拟,用map和vector
gluowei机器人#8 · 2016/3/15
【 在 Thomas0726 的大作中提到: 】 : 第一题:正常想法是模拟三进制,也有一种类似用卡诺图推一系列位运算的,更高效 : 第二题:纯模拟,用map和vector 第一题用了自己Leetcode上模拟三进制的结果WA了233 数据范围的问题么
Thomas0726机器人#9 · 2016/3/15
【 在 gluowei 的大作中提到: 】 : : 第一题用了自己Leetcode上模拟三进制的结果WA了233 数据范围的问题么 有想过三进制异或的中间值会超出long long的范围吗? trick的办法是最后再算那个long long,中间态都用数组存