纳新试题

#include<stdio.h>
#include<string.h>
//8:00 8:10 8:20 8:30 8:40 8:50 X
//9:00 8:50 7:04 8:30 10:00 X 14:00
struct time
{
 char str[20];
 char c;
}t[100],s[100];
int main()
{
 int i;
 int j,k;
 char temp;
 for(i=0;i<7;i++)
 {
  scanf("%s",t[i].str);
  if(t[i].str[0]=='X') 
  {
   t[i].c='X';
  }
  else 
  {
   t[i].c='Y';
   j=0;
   while(t[i].str[j]!=':') j++;
   while(t[i].str[j]!='\0')
   {
    t[i].str[j]=t[i].str[j+1];
    j++;
   }
  }
 }
 for(i=0;i<7;i++)
 {
  scanf("%s",s[i].str);
  if(s[i].str[0]=='X') 
  {
   s[i].c='X';
  }
  else 
  {
   s[i].c='Y';
   j=0;
   while(s[i].str[j]!=':') j++;
   while(s[i].str[j]!='\0')
   {
    s[i].str[j]=s[i].str[j+1];
    j++;
   }
  }
 }
 int ans;
 for(i=0,ans=0;i<7;i++)
 {
  if(t[i].c=='X') 
  continue;
  
  if(s[i].c=='X') {
   ans++;
   continue;
  }
  
  if(strlen(s[i].str)==strlen(t[i].str))
  {
   if(strcmp(s[i].str,t[i].str)>0) {
   ans++; 
   }
  }
  else if(strlen(s[i].str) > strlen(t[i].str)) 
  {
   ans++;
  }
 }
 printf("%d\n",ans);
 return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
 int t,c,r;
 char map[12][12];
 int book[12][12];
 int b_r[12];
 int b_c[12];
 scanf("%d",&t);
 int i;
 int k,j;
 int x,y;
 int tmep,ans;
 for(i=0;i<t;i++)
 {
  scanf("%d%d",&r,&c);
  getchar();
  memset(b_c,0,sizeof(b_c));
  memset(b_r,0,sizeof(b_r));
  memset(book,0,sizeof(book));
  for(k=0;k<r;k++)
  {
   scanf("%s",map[k]); 
  }
  for(k=0;k<r;k++)
  {
   for(j=0;j<c;j++)
   {
    if(map[k][j]=='S')
    {
     b_r[k]=1;
     b_c[j]=1;
    }
   }
  }
  
  x=0;
  for(k=0;k<c;k++)
  {
   if(b_c[k]==0) x++;
  }
  y=0;
  for(k=0;k<r;k++)
  {
   if(b_r[k]==0) y++;
  }
  ans=x*r+y*c-x*y;
  
  printf("%d\n",ans);
 }
 return 0;
}
#include<stdio.h>
int main()
{
 int n;
 int ans;
 while(~scanf("%d",&n))
 {
  if(n<=9)
  printf("%d\n",1);
  else 
  {
   ans=0;
   while(n/5!=0)
   {
    ans+=n/5;
    n=n/5; 
   } 
   printf("%d\n",ans);
  }
 }
 return 0;
}

阶乘后0的秘密

#include<stdio.h>
int main()
{
 int n;
 long long sum;
 while(scanf("%d",&n)&&n)
 {
  if(n==1) {
   printf("1\n");
   continue;
  }
  else if(n==2||n==3)
  {
   printf("2\n");
   continue;
  }
  
  sum=2;
  while(n>3)
  {
   sum++;
   n/=2;
  }
  printf("%lld\n",sum);
 }
 return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct node
{
 int v,w,c;
 double 
}a[1002];
int cmp(struct node a,struct node b)
{
 if(a.w>=b.w)
 return 1;
 else return 0;
}
int main()
{
 int n,m,tip;
 scanf("%d%d%d",&n,&m,&tip);
 int i;
 for(i=0;i<n;i++)
 {
  scanf("%d%d%d",&a[i].v,&a[i].w,&a[i].c);
 }
 sort(a,a+n,cmp);
 int sum,count;
 for(i=0,sum=0,count=0;i<n;i++)
 {
  if(sum+a[i].v > m) continue;
  
  if(sum+a[i].c*a[i].v < m)
  {
   sum+=a[i].c*a[i].v;
  } 
 }
 return 0;
}
#include<stdio.h>
int main()
{
 int n;
 scanf("%d",&n);
 int temp,cent,x;
 temp=0;
 cent=1;
 while(n--)
 {
  scanf("%d",&x);
  if(x==temp)
  {
   cent++;
  }
  else 
  {
   if(cent==1)
   {
    temp=x;
   }
   else 
    cent--;
  }
 }
 printf("%d",temp);
 return 0;
}

上学吧

#include<stdio.h>
#include<string.h>
int panduan(int n,int m)//n>m
{
 for(int i=2;i<=m;i++)
 {
  if(m%i==0&&n%i==0)
  return 0;
 }
 return 1;//ûÓй«¹²Òò×Ó¡£ 
}
int main()
{
 int a[1002];
 int sum[1002]; 
 memset(a,0,1001);
 a[1]=0;
 a[2]=3;
 sum[2]=3;
 for(int i=3;i<=1000;i++)
 {
  a[i]=1;
  for(int j=2;j<i;j++)
  {
   if((i-1)%2==0&&j%2==0)
   continue;
   if((i-1)%j==0) 
   continue;
   if(panduan(i-1,j))
   a[i]++;
  }
  sum[i]=sum[i-1]+2*a[i];
 }
 int n;
 while(scanf("%d",&n)!=EOF)
 {
  if(n==1||n==2)
  {
   printf("%d\n",a[n]);
   continue; 
  }
 
  printf("%d\n",sum[n]);
  
 }
 return 0;
}

100块钱读不完的题目

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long gcd(long long a,long long b)
{
 return b?gcd(b,a%b):a;
}
int main()
{
 int a[100002];
 int sum[100002];
 int n,i,k;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  scanf("%d",&a[i]);
 }
 
 sort(a,a+n);
 for(k=0,i=1;i<n;k++,i++)
 {
  sum[k]=a[i]-a[i-1];
 } 
 
 int temp;
 int x,y;
 temp=gcd(sum[0],sum[1]);
 for(i=1;i<k;i++)
 {
  temp=gcd(temp,sum[i]);
 }
 int time;
 for(i=0,time=0;i<k;i++)
 {
  time+=sum[i]/temp-1;
 }
 printf("%d",time);
 return 0;
} 
#include<stdio.h>
#include<string.h>
int w[20000],v[20000];
int f[15000];
int main()
{
 int n,m,tip;
 int k,i,t,j;
 int count;
 int a,b,s;//a==w,b==v,s==c
 scanf("%d%d%d",&n,&m,&tip);
 for(i=1,k=0,count=0;i<=n;i++)
 {
  scanf("%d%d%d",&a,&b,&s);
  for(j=1;j<=s;j<<=1)
  {
  // printf("j==%d\n",j);
   v[++count]=j*b;
   w[count]=j*a;
   s-=j;
  }
  if(s) {
   v[++count]=s*b;
   w[count]=s*a;
  }
 }
 getchar();
 memset(f,0,sizeof(f));
 for(i=1;i<=count;i++)
 {
  for(j=m;j>=1;j--)
  {
  if(w[i]<=j) f[j]= f[j]>f[j-w[i]]+v[i] ? f[j] : f[j-w[i]]+v[i];
  }
 }
 
 if(f[m]-tip>=0)
 printf("%d",f[m]-tip);
 else 
 printf("GG");
 return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值