Codeforces Round #184 (Div. 2) (一)

2014-11-24 02:07:56 · 作者: · 浏览: 4

第一题:

坑爹的题目,读了好长时间的题意,幸好最后懂了,我好多同学最后都错了

在与判断只有一个数的情况下到底输不输出的问题。


[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

const int N=105;
typedef long long LL;

int xh[N],cnt[N];
int k=0;

int main()
{
int i,n;
int c2=0;
cin>>n;
for(i=0;i {
scanf("%d",&xh[i]);
if(xh[i]>=10&&xh[i]<=99&&xh[i]%10==0)
{
c2=xh[i];
}
}
sort(xh,xh+n);
int vis=0,vis2=0,vis22=0;
for(i=0;i {
if(xh[i]==0||xh[i]==100)
cnt[++k]=xh[i];
if(xh[i]>=1&&xh[i]<=9&&vis==0)
{
cnt[++k]=xh[i];
vis=1;
}
if(xh[i]>=10&&xh[i]<=99)
{
if(c2!=0&&vis2==0)
{
cnt[++k]=c2;
vis2=1;
}
if(c2==0)
{
if(vis==0&&vis2==0)
{
cnt[++k]=xh[i];
vis2=1;
}
}
}
}
printf("%d\n",k);
for(i=1;i printf("%d ",cnt[i]);
printf("%d\n",cnt[k]);
return 0;
}

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

const int N=105;
typedef long long LL;

int xh[N],cnt[N];
int k=0;

int main()
{
int i,n;
int c2=0;
cin>>n;
for(i=0;i {
scanf("%d",&xh[i]);
if(xh[i]>=10&&xh[i]<=99&&xh[i]%10==0)
{
c2=xh[i];
}
}
sort(xh,xh+n);
int vis=0,vis2=0,vis22=0;
for(i=0;i {
if(xh[i]==0||xh[i]==100)
cnt[++k]=xh[i];
if(xh[i]>=1&&xh[i]<=9&&vis==0)
{
cnt[++k]=xh[i];
vis=1;
}
if(xh[i]>=10&&xh[i]<=99)
{
if(c2!=0&&vis2==0)
{
cnt[++k]=c2;
vis2=1;
}
if(c2==0)
{
if(vis==0&&vis2==0)
{
cnt[++k]=xh[i];
vis2=1;
}
}
}
}
printf("%d\n",k);
for(i=1;i printf("%d ",cnt[i]);
printf("%d\n",cnt[k]);
return 0;
}

第二题:

一看 水题,直接模拟,当时过了,最后果断wa了

因为可能在乘的情况下不能约分 会越界

经别人提醒,顺着做,看每个的除数是不是等于ai。


[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

const int N=105;
typedef __int64 LL;

LL xh[N],p,q;
int n,i;

bool test()
{
LL t;
for(i=1;i<=n;i++)
{
if(q==0||(p/q) return false;
t=p-xh[i]*q;
p=q;
q=t;
}
if(q!=0)
return false;
return true;
}

int main()
{
scanf("%I64d%I64d",&p,&q);
cin>>n;
for(i=1;i<=n;i++)
scanf("%I64d",&xh[i]);
if(test())
printf("YES\n");
else
printf("NO\n");
return 0;
}

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

const int N=105;
typedef __int64 LL;

LL xh[N],p,q;
int n,i;

bool test()
{
LL t;
for(i=1;i<=n;i++)
{
if(q==0||(p/q) return false;
t=p-xh[i]*q;
p=q;
q=t;
}
if(q!=0)
return false;
return true;
}

int main()
{
scanf("%I64d%I64d",&p,&q);
cin>>n;
for(i=1;i<=n;i++)
scanf("%I64d",&xh[i]);
if(test())
printf("Y