返回信息流两道题交到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;
}
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #89100同步于 2016/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
[求助]bupt oj84single number和91文件系统
z564808896
2016/3/14镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
84题
你开int太小了,存不下,比如随便出一组数据
4
100000000000000000 100000000000000000 100000000000000000 100000000000000006
你的结果就溢出了
但是开long long就会超时....
【 在 prison 的大作中提到: 】
: 84题
: 你开int太小了,存不下,比如随便出一组数据
: 4
: 100000000000000000 100000000000000000 100000000000000000 10000000
: .........
发自「贵邮」
【 在 z564808896 的大作中提到: 】
: 感觉并没有人理我.............
怎么讲。。。光贴代码链接,不给题意、大致思路、代码解释,本身就不是很尊重其他人的时间。。
不好意思啊,因为考虑到最近很多考研的在刷OJ,而且这两道题思路逻辑并不复杂,我想应该有人遇到这些问题就没赘述。
第一道题我想的就是很简单的二重循环,把仅一个的元素输出。
第二道题定义结构数组,用来表示目录,而文件则是结构成员,然后根据题意进行简单的create和list。
【 在 Thomas0726 的大作中提到: 】
: 怎么讲。。。光贴代码链接,不给题意、大致思路、代码解释,本身就不是很尊重其他人的时间。。
【 在 z564808896 的大作中提到: 】
: 不好意思啊,因为考虑到最近很多考研的在刷OJ,而且这两道题思路逻辑并不复杂,我想应该有人遇到这些问题就没赘述。
: 第一道题我想的就是很简单的二重循环,把仅一个的元素输出。
: 第二道题定义结构数组,用来表示目录,而文件则是结构成员,然后根据题意进行简单的create和list。
第一题:正常想法是模拟三进制,也有一种类似用卡诺图推一系列位运算的,更高效
第二题:纯模拟,用map和vector
【 在 Thomas0726 的大作中提到: 】
: 第一题:正常想法是模拟三进制,也有一种类似用卡诺图推一系列位运算的,更高效
: 第二题:纯模拟,用map和vector
第一题用了自己Leetcode上模拟三进制的结果WA了233 数据范围的问题么
【 在 gluowei 的大作中提到: 】
:
: 第一题用了自己Leetcode上模拟三进制的结果WA了233 数据范围的问题么
有想过三进制异或的中间值会超出long long的范围吗?
trick的办法是最后再算那个long long,中间态都用数组存