A题。。。大水题。。判断1-n中每个数字是否都出现了就好。。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=110;
bool vis[MAXN];
int main()
{
int x,i,flag,n;
while(scanf("%d",&n)==1)
{
int m;
memset(vis,0,sizeof(vis));
scanf("%d",&m);
while(m--)
{
scanf("%d",&x);
vis[x]=1;
}
scanf("%d",&m);
while(m--)
{
scanf("%d",&x);
vis[x]=1;
}
flag=1;
for(i=1;i<=n;i++)
{
if(!vis[i])
{
flag=0;
break;
}
}
if(flag)
printf("I become the guy.\n");
else
printf("Oh, my keyboard!\n");
}
return 0;
}
B。。。也很水。。。。直接暴力就可以过。。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=1010;
bool vis[MAXN];
struct Node
{
int l,r;
}a[55];
int main()
{
int p,q,l,r,i;
while(scanf("%d%d%d%d",&p,&q,&l,&r)==4)
{
memset(vis,0,sizeof(vis));
int x,y;
while(p--)
{
scanf("%d%d",&x,&y);
for(i=x;i<=y;i++)
vis[i]=1;
}
for(i=0;i<q;i++)
{
scanf("%d%d",&a[i].l,&a[i].r);
}
int ans=0;
for(i=l;i<=r;i++)
{
for(int k=0;k<q;k++)
{
int flag=0;
for(int j=a[k].l;j<=a[k].r;j++)
{
if(j+i<=1000)
{
if(vis[j+i])
{
ans++;
flag=1;
break;
}
}
}
if(flag)
break;
}
}
printf("%d\n",ans);
}
return 0;
}
C题,这题看了很久,其实是找规律,n<=3不存在,大于3就一点有了,n=4或5特判,大于等于6我们总能组合出n-(n-4)=4,(n-1)-(n-3)=2,(n-2)-(n-5)=3,然后2*3*4=24了,我们已经用的最大的6个数字,然后面还多余的一些数字每个都n-(n-1)=1,注意下n是偶数还是奇数就好,还要注意n==7的情况。。。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,i;
while(scanf("%d",&n)==1)
{
if(n<=3)
{
printf("NO\n");
continue;
}
if(n==4)
{
printf("YES\n");
printf("1 * 2 = 2\n");
printf("2 * 3 = 6\n");
printf("6 * 4 = 24\n");
continue;
}
if(n==5)
{
printf("YES\n");
printf("5 - 1 = 4\n");
printf("4 - 2 = 2\n");
printf("2 * 3 = 6\n");
printf("6 * 4 = 24\n");
continue;
}
printf("YES\n");
printf("%d - %d = 4\n",n,n-4);
printf("%d - %d = 2\n",n-1,n-3);
printf("%d - %d = 3\n",n-2,n-5);
printf("2 * 3 = 6\n");
printf("6 * 4 = 24\n");
n-=6;
int k=n;
if(k==1)
{
printf("1 * 24 = 24\n");
continue;
}
while(n>1)
{
printf("%d - %d = 1\n",n,n-1);
n-=2;
}
if(k%2==0)
{
int m=k/2;
while(m--)
{
printf("1 * 24 = 24\n");
}
}
else
{
int m=k/2;
printf("1 * 1 = 1\n");
while(m--)
{
printf("1 * 24 = 24\n");
}
}
}
return 0;
}