做补题题组(8h)
#include <stdio.h>
int a[4];
int k=0,s=0;
void tt(int x,int y,int z);
int main()
{
int i;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
tt(a[0],a[1],a[2]);
tt(a[3],a[1],a[2]);
tt(a[0],a[1],a[3]);
tt(a[0],a[3],a[2]);
if(k!=0)printf("TRIANGLE");
if(k==0&&s!=0)printf("SEGMENT");
if(k==0&&s==0)printf("IMPOSSIBLE");
return 0;
}
void tt(int x,int y,int z)
{
int i,j,t;
int kk[3];
kk[0]=x;kk[1]=y;kk[2]=z;
for(i=0;i<2;i++)
for(j=0;j<2-i;j++)
{
if(kk[j]>kk[j+1])
{
t=kk[j];
kk[j]=kk[j+1];
kk[j+1]=t;
}
}
if(kk[0]+kk[1]>kk[2])k++;
if(kk[0]+kk[1]==kk[2])s++;
}
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int k=a;
if(a<b)k=b;
if(k==1)printf("1/1");
if(k==2)printf("5/6");
if(k==3)printf("2/3");
if(k==4)printf("1/2");
if(k==5)printf("1/3");
if(k==6)printf("1/6");
printf("0/1");
return 0;
}
暴力
#include <stdio.h>
#include <string.h>
int main()
{
int a,b;
scanf("%d",&a);
scanf("%d",&b);
int s[200];
int i=0;
while(a>0)
{
s[i]=a%10;
a=a/10;
i++;
}
int k=i-1;
int j,t;
for(i=0;i<k;i++)
{
for(j=0;j<k-i;j++)
{
if(s[j]<s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
for(i=k;i>=0;i--)
{
if(s[k]!=0)break;
if(s[i]!=0)
{
s[k]=s[i];
s[i]=0;
break;
}
}
int sum=0,ss=1;
for(i=0;i<=k;i++)
{
sum=sum+s[i]*ss;
ss=ss*10;
}
if(sum==b)printf("OK");
else printf("WRONG_ANSWER");
return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int n,d,m,l;
scanf("%d %d %d %d",&n,&d,&m,&l);
long long int ff=d;
int k=m;
long long int ss,kk;
while(1)
{
ss=ff/k;
if(ss==n)
break;
kk=ff%k;
if(kk>l)
break;
ff=ff+d;
}
printf("%lld",ff);
return 0;
}
超时超时淦
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
long long n,d,m,l;
scanf("%lld %lld %lld %lld",&n,&d,&m,&l);
long long ff,kk,i;
for(i=1;i<=n;i++)
{
ff=(i-1)*m+l;
kk=i*m-1;
if(ff/d!=kk/d)
break;
}
printf("%lld",ff/d*d+d);
return 0;
}
这个彳亍
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int t;
scanf("%d",&t);
while(t!=0)
{
int n,m;
scanf("%d %d",&n,&m);
char s[300];
scanf("%s",s);
int i,head=0,sum=0;
for(i=0;i<n;i++)
{
if(s[i]=='('){
head++;
}
if(s[i]==')'&&head!=0)
{
head--;
sum++;
}
}
if(sum>=m)printf("1\n");
else printf("0\n");
t--;
}
return 0;
}
匹配括号
能匹配的括号组数量比m大就ok
光看翻译真看不懂啥意思
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int a,b;
int sum=0;
void kk(int x,int y);
int main()
{
scanf("%d %d",&a,&b);
kk(1,0);
if(sum>0)printf("Yes");
else printf("No");
return 0;
}
void kk(int x,int y)
{
if(x==b&&y==a)
{
sum++;
return ;
}
if(x>b||y>a)
return ;
kk(x+1,y+1);
if(y>0)
kk(x,y+2);
}
搜索,枚举
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int t;
scanf("%d",&t);
int l;
for(l=0;l<t;l++)
{
int n;
scanf("%d",&n);
int a[2*n],b[2*n];
int i;
for(i=0;i<2*n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<2*n;i++)
{
scanf("%d",&b[i]);
}
int aa=n,bb=n;
for(i=0;i<2*n;i++)
{
if(a[i]==b[i])
{
if(aa>0)
{
aa--;
if(a[i]==1)
a[i]=3;
else a[i]--;
}
else
{
if(bb>0)
{
bb--;
if(b[i]==3)
{
b[i]=1;
}
else b[i]++;
}
}
}
else
if(b[i]-a[i]==1||(a[i]==3&&b[i]==1))
1;
else if(a[i]-b[i]==1||(a[i]==1&&b[i]==3))
{
if(aa>0)
{
aa--;
if(b[i]==1)
a[i]=3;
else a[i]=b[i]-1;
}
else if(bb>0)
{
bb--;
if(a[i]==3)
b[i]=1;
else b[i]=a[i]+1;
}
}
}
printf("%d\n",2*n);
for(i=0;i<2*n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i<2*n;i++)
{
printf("%d ",b[i]);
}
printf("\n");
}
return 0;
}
每队都能改n人
那分数最高肯定就是全赢咯
完事再遍历判断改数字就行了