老年人康复训练:基础篇

  2.ACM
  • 大概已经一年半没碰算法了,为找工作康复训练一下。
  • 目标:落谷题单刷完-https://www.luogu.com.cn/training/list
  • 按住Ctrl+F输入P+题号即可快速查看代码位置

入门1-6

  • 速刷,不写题目描述和思路。
  • P5703
#include<stdio.h>
int main()
{
	long long a,b;
	scanf("%d%d",&a,&b);
	printf("%d",a*b);
	return 0;
}
  • P5704
#include<stdio.h>
int main()
{
	char a,b;
	scanf("%c",&a);
	printf("%c",a-'a'+'A');
	return 0;
}
  • P5705
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
using namespace std;

int main()
{
	string a;
	cin >> a;
	for(int i = a.length() - 1 ; i >= 0 ; i--)
		cout << a[i];
	return 0;
}
  • P5706
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
using namespace std;

int main()
{
	double a,b;
	scanf("%lf%lf",&a,&b);
	printf("%.3lf\n%d",a/b,(int)(b*2));
	return 0;
}
  • P1425
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d;
	scanf("%d%d%d%d",&a,&b,&c,&d);
	if(c > a || (a == c && d > b))
	{
		c = c - a;
		d = d - b;
		if(d < 0)
		{
			c--;
			d = d + 60;
		}
		a = c;
		b = d;
	}
	else
	{
		a = a - c;
		b = b - d;
		if(b < 0)
		{
			a--;
			b = b + 60;
		}
		a = 24 - a;
		b = -b;
		if(b < 0)
		{
			a--;
			b = b + 60;
		}
	}
	printf("%d %d",a,b);
	return 0;
}
  • 2433,论恶心人还是真有你的
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int a,b,c,d;
	int n;
	scanf("%d",&n);
	if(n == 1)
		printf("I love Luogu!");
	else if(n == 2)
		printf("%d %d",6,4);
	else if(n == 3)
		printf("%d\n%d\n%d",3,12,2);
	else if(n == 4)
		printf("%.3lf",500.0/3);
	else if(n == 5)
		printf("%d",(220+260)/32);
	else if(n == 6)
		cout << sqrt((6*6)+(9*9));
	else if(n == 7)
		printf("%d\n%d\n%d",110,90,0);
	else if(n == 8)
		cout << 3.141593 * 10 << "\n" << 3.141593 * 5 * 5 << "\n" << 3.141593 * 4.0 / 3.0 * 5 * 5 * 5;
	else if(n == 9)
		printf("%d",22);
	else if(n == 10)
		printf("%d",9);
	else if (n == 11)
		cout << 1.0 * 100 / 3;
	else if (n == 12)
		printf("%d\n%c",13,'R');
	else if (n == 13)
		printf("%d",16);
	else if (n == 14)
		printf("%d",50);
	return 0;
}
  • P5708
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	double a,b,c,p;
	scanf("%lf%lf%lf",&a,&b,&c);
	p = (a + b + c) / 2;
	p = sqrt(p *(p - a)*(p - b)*(p - c));
	printf("%.1lf",p);
	return 0;
}
  • P5709
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int  m,t,s;
	scanf("%d%d%d",&m,&t,&s);
	if(t == 0) 
	{
		printf("%d",0);
		return 0;
	}
	m = m - (s / t);
	if(s % t == 0) printf("%d",max(m,0));
	else printf("%d",max(m-1,0));
}
  • P2181,组合数放到这里了,怪,而且要用unsigned。
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	unsigned long long  n;
	scanf("%lld",&n);
	printf("%lld\n",n*(n-1)/2*(n-2)/3*(n-3)/4);
}
  • P5707
#include<iostream>
using namespace std;

int main()
{
	int s,v;
	cin >> s >> v;
	s = s / v + 10 + (s % v == 0 ? 0 : 1);
	if(s < 480)
		s = 480 - s;
	else
		s = 1440 - (s - 480);
	if(s / 60 < 10) cout << 0;
	cout << s / 60 << ":";
	if(s % 60 < 10) cout << 0;
	cout <<s % 60;
}
  • P3954
#include<iostream>
using namespace std;

int main()
{
	int a,b,c;
	cin >> a >> b >> c;
	cout << a * 0.2 + b * 0.3 + c * 0.5;
	return 0;
}
  • P5710
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int n,m = 0;
	scanf("%d",&n);
	if(n % 2 == 0) m++;
	if(n > 4 && n <= 12) m++;
	if(m == 2) printf("1 ");
	else printf("0 ");
	if(m >= 1) printf("1 ");
	else printf("0 ");
	if(m == 1) printf("1 ");
	else printf("0 ");
	if(m == 0) printf("1");
	else printf("0");
}
  • P5711
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",((n%4==0&&n%100!=0)||(n%400==0))?1:0);
}
  • P5712
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int n;
	scanf("%d",&n);
	if(n == 1) printf("Today, I ate 1 apple.");
	else if(n == 0) printf("Today, I ate 0 apple.");
	else printf("Today, I ate %d apples.",n);
}
  • P5713
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int n;
	scanf("%d",&n);
	if(n < 6) printf("Local");
	else printf("Luogu");
}
  • P5714
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	double m,h;
	scanf("%lf%lf",&m,&h);
	m = m / h / h;
	if(m < 18.5) printf("Underweight");
	else if(m >= 18.5 && m < 24) printf("Normal");
	else cout << m << "\n" << "Overweight";
}
  • P5715
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;
int a[1010];


int main()
{
	for(int i = 1 ; i <= 3 ; i++)
		scanf("%d",&a[i]);
	for(int i = 1 ; i < 3 ; i++)
		for(int j = 1 ; j < 3 ; j++)
			if(a[j] > a[j+1]) swap(a[j],a[j+1]);
	for(int i = 1 ; i <= 3 ; i++)
		printf("%d ",a[i]);
}
  • P5716
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;
int y,m;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};  //定义月份对应天数数组

int main()
{
	scanf("%d%d",&y,&m);
	if((y%4==0&&y%100!=0)||y%400==0)a[2]=29;
    printf("%d",a[m]);
    return 0;
}
  • P1085
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;
int a,b,day = 0,f = 0;

int main()
{
	for(int i = 1 ; i <= 7 ; i++)
	{
		scanf("%d%d",&a,&b);
		if(a + b > day) {day = a + b;f = i;}
	}
	printf("%d",f);
    return 0;
}
  • P1055
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;
int a,b,day = 0,f = 0;

int main()
{
	char a[14],mod[12]="0123456789X";
	scanf("%s",a);
	int i,j=1,t=0;
	for(i=0;i<12;i++){
		if(a[i]=='-') continue;
		t+=(a[i]-48)*j++;
	}
	if(mod[t%11]==a[12])
	    printf("Right");
	else{
		a[12]=mod[t%11];
		printf("%s",a);
	}
	return 0;
}
  • P1422
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	double s;
    int n;
    scanf("%d",&n);
    if (n>400)
    	s=150*0.4463+250*0.4663+(n-400)*0.5663;
    else if (n>150)
    	s=150*0.4463+(n-150)*0.4663;
    else
    	s=n*0.4463;
    printf("%.1lf",floor(s*10+0.5)/10.0);
    return 0;
}
  • P1424
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int x,n,sum = 0;
	scanf("%d%d",&x,&n);
	 for(int i=0;i<n;i++)
    {
        if((x!=6)&&(x!=7))
            sum += 250; 
        if(x==7) x=1;
        else x++;
    }
	printf("%d",sum);
    return 0;
}
  • P1888
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;

int main()
{
	int a[4],gcd = 0;
	for(int i=1;i<=3;i++)
	 scanf("%d",&a[i]);
	sort(a + 1 , a + 1 + 3);
	for(gcd=a[1];gcd>1;gcd--)
		if(a[1]%gcd==0&&a[3]%gcd==0)break;
	printf("%d/%d",a[1]/gcd,a[3]/gcd);
    return 0;
}
  • P1046 经典之淘淘摘苹果,我记得还后续出了一道苹果摘淘淘
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;

int main()
{
	int a[10];
    int b;
    int c=0;
    for(int i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    scanf("%d",&b);
    for(int n=0;n<10;n++){
        if(a[n]<=(b+30)){
            c++;
        }        
    }
    printf("%d",c);
    return 0;
}
  • P5717
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;

int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(c > b) swap(b,c);
	if(b > a) swap(b,a);
	if(c > b) swap(b,c);
	if(a > b + c)
	{
		printf("Not triangle\n");
		return 0;
	}
	if(a * a == b * b + c * c)
		printf("Right triangle\n");
	if(a * a < b * b + c * c)
		printf("Acute triangle\n");
	if(a * a > b * b + c * c)
		printf("Obtuse triangle");
	if(b == c)
		printf("Isosceles triangle\n");
	if(a == b && b == c)
		printf("Equilateral triangle\n");	
}
  • P4414
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;

int main()
{
	int a[10];
	scanf("%d%d%d",&a[1],&a[2],&a[3]);
	sort(a+1,a+1+3);
	char i[10];
	scanf("%s",i);
	printf("%d ",a[i[0]-'A'+1]);	
	printf("%d ",a[i[1]-'A'+1]);	
	printf("%d ",a[i[2]-'A'+1]);	
}
  • P5718
#include<stdio.h>
using namespace std;

int main()
{
	int minn = 0x7fffffff,a;
	int n;
	scanf("%d",&n);
	for(int i = 1 ; i <= n ; i++)
	{
		scanf("%d",&a);
		if(a <=  minn) minn = a;
	}
	printf("%d",minn);
	return 0;
}
  • P5719
#include<stdio.h>
using namespace std;

int main()
{
	int a = 0,b = 0,na = 0,nb = 0;
	int n,k;
	scanf("%d%d",&n,&k);
	for(int i = 1 ; i <= n ; i++)
	{
		if(i % k == 0) 
			a = a + i,na++;
		else b = b + i,nb++;
	}
	printf("%.1lf %.1lf",(double)a/na,(double)b/nb);
	return 0;
}
  • P5720,麻了,注意一下第一天为1的情况
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	double a ;
	scanf("%lf",&a);
	if(a == 1) 
	{
		printf("1");
		return 0;
	}
	for(int i = 1 ;  ; i++)
	{
		a = floor(a / 2.0);
		if(a == 1) 
		{
			printf("%d",i + 1);
			return 0;
		}
	}
	return 0;
}
  • P5721
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	int a;
	scanf("%d",&a);
	int k = 0;
	for(int i = 1 ; i <= a ; i++)
	{
		for(int j = a - i + 1; j >= 1 ; j--)
		{
			k++;
			if(k < 10) printf("0%d",k);
			else printf("%d",k);
		}
		printf("\n");
	}
	return 0;
}
  • P1009
#include<bits/stdc++.h>
using namespace std;
int a[100000],n,i,y,xy[100000],s[100000];

void add()
{
    int i;
    memset(xy,0,sizeof(xy));
    xy[0]=max(s[0],a[0]);
    for (i=1;i<=xy[0];i++)
    {
        xy[i]+=s[i]+a[i];
        xy[i+1]=xy[i]/10;
        xy[i]%=10;//进位
     }
    while (xy[xy[0]+1]>0)
        {
            xy[xy[0]+2]=xy[xy[0]+1]/10;
            xy[xy[0]+1]%=10;
            xy[0]++;
        }
    s[0]=xy[0];
    for (i=1;i<=xy[0];i++) s[i]=xy[i];
}
int main()
{
    cin>>n;
    a[0]=1;
    a[1]=1;
    s[0]=1;
    s[1]=0;
    for (y=1;y<=n;y++)
    {
        memset(xy,0,sizeof(xy));
        xy[0]=a[0];
        for (i=1;i<=a[0];i++)
        {
          xy[i]+=a[i]*y;
          xy[i+1]=xy[i]/10;
          xy[i]%=10;
        }
        while (xy[xy[0]+1]>0) 
        {
            xy[xy[0]+2]=xy[xy[0]+1]/10;
            xy[xy[0]+1]%=10;
            xy[0]++;
        }
        for (i=1;i<=xy[0];i++) a[i]=xy[i];
        a[0]=xy[0];
        add();
    }
    for (i=s[0];i>=1;i--) cout<<s[i];
    cout<<endl;
    return 0;
}
  • P1980
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	int n,x,sum = 0;
	scanf("%d%d",&n,&x);
	for(int i = 1 ; i <= n ; i++)
	{
		int k = i;
		while(k != 0)
		{
			if(k % 10 == x) sum++;
			k = k /10;
		}
	}
	printf("%d",sum);
	return 0;
}
  • P1035
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	int k;
	double Sn = 0;
	scanf("%d",&k);
	for(int i = 1 ; ; i++)
	{
		Sn += 1.0/i;
		if(Sn > k) 
		{
			printf("%d",i);
			return 0;
		}
	}
	return 0;
}
  • P2669
# include <stdio.h>
int main()
{
    int K,N,coin=0;
    scanf("%d",&K);
    for(N=1;K-N>=0;K-=N++)
        coin+=N*N;
    printf("%d\n",coin+K*N);
    return 0;
}
  • P5722
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",(1 + n) * n / 2);
	return 0;
}
  • P5723
#include<stdio.h>
#include<math.h>
using namespace std;
int a[100010];

int main()
{
	int n,k = 0;
	scanf("%d",&n);
	for(int i = 2 ; i <= 100000 ; i++)
	{
		bool f = true;
		for(int j = 2 ; j <= sqrt(i) ; j++)
		{
			if(i % j == 0) 
			{
				f = false;
				break;
			}
		}
		if(f == true) a[++k] = i;
	}
	int sum = 0;
	for(int i = 1 ; i <= k ; i++)
	{
		if(n < 2) {printf("0");break;}
		if(sum + a[i] <= n) sum+=a[i],printf("%d\n",a[i]);
		else
		{
			printf("%d",i - 1);
			break;
		}
	}
	return 0;
}
  • P1217 1、除了2之外没有偶数的回文素数,所以每次循环i=i+2 2、判断回文比判断素数复杂度低 3、可以用素数筛A这道题
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	if(a <= 2 && b >= 2)
		printf("2\n");
	if(a % 2 == 0) a++;
	for(int i = a ; i <= b ; i = i + 2)
	{
		int w[10];
		int j = 0,k = i;
		while(k != 0)
		{
			w[++j] = k % 10;
			k = k / 10;
		}
		bool f = true;
		int l = 0;
		while(1 + l <= j - l)
		{
			if(w[1 + l] != w[j - l])
			{
				f = false;
				break;
			}
			l++;
		}
		if(f == false) continue;
		for(int j = 2 ; j <= sqrt(i) ; j++)
		{
			if(i % j == 0) 
			{
				f = false;
				break;
			}
		}
		if(f == true)
		{
			printf("%d\n",i);
		}
	}
}
  • P1423
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
	double a;
	double sum = 0,now  = 2;
	scanf("%lf",&a);
	int i = 1;
	while(sum < a)
	{
		sum += now;
		now *= 0.98;
		i++;
	}
	printf("%d",i - 1);
	return 0;
}
  • P1307
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	string a;
	bool f = true;
	cin >> a;
	if(a[0] == '-') cout << a[0];
	for(int i = a.length() - 1 ; i > 0 ; i--)
	{
		if(f == true && a[i] == '0') continue;
		cout<<a[i];
		f = false;
	}
	if(a[0] != '-') cout << a[0];
	return 0;
}
  • P1720
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	double a;
	scanf("%lf",&a);
	printf("%.2lf",(pow(((1+sqrt(5))/2.0),a)-pow(((1-sqrt(5))/2.0),a))/sqrt(5));
	return 0;
}
  • P5724
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	int n;
	int maxn = -0x7fffffff,minn = 0x7fffffff;
	scanf("%d",&n);
	for(int i = 1 ; i <= n ; i++)
	{
		int a;
		scanf("%d",&a);
		if(a >= maxn) maxn = a;
		if(a <= minn) minn = a;
	}
	printf("%d",maxn - minn);
	return 0;
}
  • P1420
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	int n;
	int sum = 0,maxn = 0;
	scanf("%d",&n);
	int la;
	scanf("%d",&la);
	for(int i = 2 ; i <= n ; i++)
	{
		int a;
		scanf("%d",&a);
		if(a - la == 1) sum++;
		else
		{
			if(sum >= maxn) maxn = sum;
			sum = 0;
		}
		la = a;
	}
	printf("%d",maxn + 1);
	return 0;
}
  • 1075
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	int n;
	scanf("%d",&n);
	for(int i = 2 ; i <= sqrt(n); i++)
	{
		if(n % i == 0 || n % 2 == 0)
		{
			printf("%d",n / i );
			break;
		}
	}
	return 0;
}
  • P5725
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	int n,s = 0;
	scanf("%d",&n);
	for(int i = 1 ; i <= n; i++)
	{
		for(int j = 1 ; j <= n ; j++)
		{
			s++;
			if(s < 10) printf("0");
			printf("%d",s);
		}
		printf("\n");
	}
	printf("\n");
	s = 0;
	for(int i = 1 ; i <= n; i++)
	{
		for(int j = 1 ; j <= n - i; j++)
			printf("  ");
		for(int j = 1 ; j <= i ; j++)
		{
			s++;
			if(s < 10) printf("0");
			printf("%d",s);
		}
		printf("\n");
	}
	return 0;
}
  • P5726
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
	int n;
	int maxn = -0x7fffffff,minn = 0x7fffffff;
	int sum = 0;
	scanf("%d",&n);
	for(int i = 1 ; i <= n ; i++)
	{
		int a;
		scanf("%d",&a);
		sum += a;
		if(a >= maxn) maxn = a;
		if(a <= minn) minn = a;
	}
	sum = sum - maxn - minn;
	printf("%.2lf",(double)sum/(n-2));
	return 0;
}
  • P4956
#include <cstdio>
int main()
{
    int n, x, k;
    scanf("%d", &n);
    for (k = 1;; ++k)
        for (x = 100; x > 0; --x)
            if ((7 * x + 21 * k) * 52 == n)
            {
                printf("%d\n%d\n", x, k);
                return 0;
            }
}
  • P1089
#include<iostream>
using namespace std;
int money,cost,mama,flag=1,monthofdeath;
int main ()
{
    for(int i=1;i<=12;i++)
    {
        money+=300;
        cin>>cost;
        money-=cost;
           if(money<0)
           {     
              flag=0;
              monthofdeath=i;
              break;
           }
        mama+=money/100;
        money%=100;
    }    
    if(flag==1)
    {
        money+=mama*120;
        cout<<money;
    }            
    else
    {
        cout<<-monthofdeath;
    }    
    return 0;
}
  • P1428
#include<iostream>
#include<stdio.h>
using namespace std;
int a[10010];
int b[10010];

int main()
{
	int n;
	scanf("%d",&n);
	for(int i = 1 ; i <= n ; i++)
	{
		scanf("%d",&a[i]);
		int s = 0;
		for(int j = 1 ; j < i ; j++)
			if(a[i] > a[j])	s++;	
		b[i] = s;
	}
	for(int i = 1 ; i <= n ; i++)
		printf("%d ",b[i]);
	return 0;
}
  • P1427
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
string a;

int main()
{
	int n = 0;
	for(int i = 1 ; ; i++)
	{
		scanf("%d",&a[i]);
		if(a[i] == 0) break;
		else n++;
	}
	for(int i = n ; i >= 1 ; i--)
		printf("%d ",a[i]);
	return 0;
}
  • P5727
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
long long a;
int n = 0;
long long sum[10010];

int main()
{
	scanf("%lld",&a);
	sum[++n] = a;
	while(a != 1)
	{
		if(a % 2 != 0) a = a *3 + 1;
		else a = a / 2;
		sum[++n] = a;
	}
	for(int i = n ; i >= 1 ; i--)
		printf("%d ",sum[i]);
	return 0;
}
  • P1047
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int a[10010]; 

int main()
{
	int l,m,u,v,sum = 0;
	scanf("%d%d",&l,&m);
	for(int i = 1; i <= m ;i++)
	{
		scanf("%d%d",&u,&v);
		for(int j = u ; j <= v ; j++)
		{
			a[j]++;
			if(a[j] == 1) sum++;
		}
	}
	printf("%d",l - sum + 1);
	return 0;
}
  • P5728
#include<iostream>
#include<stdio.h>
#include<string>
#include<math.h>
using namespace std;
int a[1010],b[1010],c[1010]; 
int n;

int main()
{
	int sum = 0;
	scanf("%d",&n);
	for(int i = 1 ; i <= n ; i++)
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
	for(int i = 1 ; i <= n ; i++)
		for(int j = i + 1 ; j <= n ; j++)
		{
			if(abs(a[i]-a[j]) <= 5 && abs(b[i]-b[j]) <= 5 &&
			abs(c[i]-c[j]) <= 5 && abs(a[i] + b[i] + c[i] - a[j] - b[j] - c[j]) <= 10)
				sum++;
		}
	printf("%d",sum);
	return 0;
}
  • P5729
#include<stdio.h>
#include<iostream>
using namespace std;

int a[30][30][30];

int main()
{
	int w,x,h;
	scanf("%d%d%d",&w,&x,&h);
	for(int i = 1 ; i <= w ; i++)
		for(int j = 1 ; j <= x ; j++)
			for(int k = 1 ; k <= h ; k++)
				a[i][j][k] = 1;
	int q;
	scanf("%d",&q);
	for(int p = 1 ; p <= q ; p++)
	{
		int x1,y1,z1,x2,y2,z2;
		scanf("%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2);
		for(int i = x1 ; i <= x2 ; i++)
			for(int j = y1 ; j <= y2 ; j++)
				for(int k = z1 ; k <= z2 ; k++)
					a[i][j][k] = 0;
	}
	int sum = 0;
	for(int i = 1 ; i <= w ; i++)
		for(int j = 1 ; j <= x ; j++)
			for(int k = 1 ; k <= h ; k++)
				if(a[i][j][k] == 1) sum++;
	printf("%d",sum);
}
  • P2550
#include<stdio.h>
#include<iostream>
using namespace std;

int a[1010][10];
int pri[40];
int val[10];

int main()
{
	int n;
	scanf("%d",&n);
	for(int i = 1 ; i <= 7 ; i++)
	{
		int x;
		scanf("%d",&x);
		pri[x]++;
	}
	for(int i = 1 ; i <= n ; i++)
		for(int j = 1 ; j <= 7 ; j++)
			scanf("%d",&a[i][j]);
	for(int i = 1 ; i <= n ; i++)
	{
		int sum = 0;
		for(int j = 1 ; j <= 7 ; j++)
			if(pri[a[i][j]] != 0) sum++;
		val[8 - sum]++;
	}
	for(int i = 1 ; i <= 7 ; i++) 
		printf("%d ",val[i]);
}
  • P2615
#include<stdio.h>
using namespace std;
int a[1010][1010];

int main()
{
	int n;
	int lx,ly;
	scanf("%d",&n);
	lx = 1;ly = (n/2)+1;
	a[lx][ly] = 1;
	for(int i = 2 ; i <= n * n; i++)
	{
		if(lx == 1 && ly != n)
		{
			lx = n;ly++;
			a[lx][ly] = i;
		}
		else if(ly == n && lx != 1)
		{
			ly = 1;lx--;
			a[lx][ly] = i;
		}
		else if(lx == 1 && ly == n)
		{
			lx++;
			a[lx][ly] = i;
		}
		else if(lx != 1 && ly != n)
		{
			if(a[lx-1][ly+1] == 0)
			{
				lx--;ly++;
				a[lx][ly] = i;
			}
			else
			{
				lx++;
				a[lx][ly] = i;
			}
		}
	}
	
	for(int i = 1 ; i <= n ; i++)
	{
		for(int j = 1 ; j <= n ; j++)
		{
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
	return 0;	
}
  • P5730
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
string s1[6] = {
"XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX",
"X.X...X...X...X.X.X.X...X.....X.X.X.X.X",
"X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX",
"X.X...X.X.....X...X...X.X.X...X.X.X...X",
"XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX"};

int main()
{
	int n;
	string a;
	scanf("%d",&n);
	cin >> a;
	for(int i = 1; i <= 5 ; i++)
	{
		for(int j = 0 ; j < n ; j++)
		{
			for(int k = (a[j] - '0')* 4 ; k < (a[j] - '0' + 1) * 4 - 1; k++)
				printf("%c",s1[i - 1][k]);
			if(j != n-1)
				cout << ".";
		}
		cout<<endl;
	}
}
  • P1554
#include<stdio.h>
using namespace std;

int n,m;
int a[20];

int main()
{
	scanf("%d%d",&n,&m);
	for(int i = n; i <= m ; i++)
	{
		int s = i;
		while(s != 0)
		{
			a[s%10]++;
			s = s / 10;
		}
	}
	for(int i = 0 ; i <= 9 ; i++)
		printf("%d ",a[i]);
}
  • P2141
#include<stdio.h>
using namespace std;

int n;
int a[1010],t[10010];
int sum = 0;

int main()
{
	scanf("%d",&n);
	for(int i = 1; i <= n ; i++)
		scanf("%d",&a[i]);
	for(int i = 1 ; i <= n ; i++)
		for(int j =  1 ; j <= n ; j++)
			for(int k =  j + 1; k <= n ; k++)
				if(a[i] == a[j] + a[k] && j != k) 
				{
					t[a[i]]++;
					if(t[a[i]] == 1)
						sum++;
				}
	
	printf("%d",sum);
}
  • P1614
#include<iostream>
using namespace std;

int a[1010];

int main()
{
	int n,m;
	int sum = 0,minx;
	cin >> n >> m;
	for(int i = 1 ; i <= m ; i++)
	{
		cin >> a[i];
		sum += a[i];
	}
	minx = sum;
	for(int i = m + 1; i <= n ; i++)
	{
		sum -= a[1];
		for(int i = 1 ; i < m ; i++)
			a[i] = a[i+1];
		cin >> a[m];
		sum += a[m];
		if(sum < minx) minx = sum;
	}
	cout << minx;
	return 0;
}
  • P2911
#include<iostream>
using namespace std;

int a[110];

int main()
{
	int s1,s2,s3;
	int maxn = 0,p = 0;
	cin >> s1 >> s2 >> s3;
	for(int i = 1 ; i <= s1 ; i++)
		for(int j = 1 ; j <= s2 ; j++)
			for(int k = 1 ; k <= s3 ; k++)
				a[i+j+k]++;
	for(int i = 1 ; i <= 100 ; i++)
		if(a[i] > maxn) 
		{
			p = i;
			maxn = a[i];
		}
	cout << p;
	return 0;
}
  • P1161注意一下开的数组大小,或者直接用异或进行处理
#include<iostream>
#include<math.h>
using namespace std;

bool T[2000010];
	
int main()
{
	int n;
	double a,t;
	cin >> n;
	for(int i = 1; i <= n ; i++)
	{
		cin >> a >> t;
		for(double j = 1 ; j <= t ; j++)
		{
			int s = floor(a * j);
			T[s] = !T[s];
		}
	}
	for(int i = 1 ; i <= 2000000 ; i++)
		if(T[i] == true) 
		{
			cout << i;
			break;
		}
}
  • P5731注意格式
#include<stdio.h>
#include<iostream>
using namespace std;
int a[15][15];
int main()
{
	int n,k=1,x=1,y=0;;
	cin>>n;
	while (k<=n*n)
	{
		while(y<n&&!a[x][y+1])a[x][++y]=k++;
		while(x<n&&!a[x+1][y])a[++x][y]=k++;
		while(y>1&&!a[x][y-1])a[x][--y]=k++;
		while(x>1&&!a[x-1][y])a[--x][y]=k++;
	}
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=n;j++)printf("%3d",a[i][j]);
		printf("\n");	
	}	
	return 0;
}
  • P5732
#include<iostream>
using namespace std;
int a[110];
int b[110];
int main()
{
	int n;
	cin >> n;
	for(int i = 1 ; i <= n ; i++)
	{
		for(int j = 1 ; j <= i ; j++)
		{
			if(j == 1 || j == i) 
			{
				a[j] = b[j] = 1;
				cout << 1 << " ";
			}
			else
			{
				b[j] = a[j-1] + a[j];
				cout << b[j] << " ";
			}	
		}
		swap(a,b);
		cout << '\n';
	}
}
  • P1319
#include<iostream>
using namespace std;
int main()
{
	int n,sum = 0,a,k = 0;
	cin >> n;
	bool f = false;
	while(sum != n * n)
	{
		cin >> a;
		sum += a;
		for(int i = 1;  i <= a ; i++)
		{
			if(f == false)
				cout << 0;
			else cout << 1;
			k++;
			if(k == n) 
			{
				k = 0;
				cout << endl;
			}
		}
		f = !f;
	}
}
  • P1320
#include<iostream>
#include<math.h>
using namespace std;
int a[40010];
int main()
{
	int t = 0,sum = 0,cnt = 0;
	char ch = getchar();
	bool f = false;
	while(ch != EOF)
	{
		if(ch == '0') 
		{
			if(f == false) cnt++;
			else 
			{
				a[++t] = cnt;
				sum += cnt;
				cnt = 1;
				f = !f;
			} 
		}
		if(ch == '1') 
		{
			if(f == true) cnt++;
			else 
			{
				a[++t] = cnt;
				sum += cnt;
				cnt = 1;
				f = !f;
			} 
		}
		ch = getchar();
	}
	sum += cnt;
	a[++t] = cnt;
	cout << sqrt(sum) << " ";
	for(int i = 1;  i <= t ; i++)
		cout << a[i] << " ";
}
  • P1205
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=12;
int n;
struct Matrix
{
    int a[maxn][maxn];
    void in(){for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf(" %c",a[i]+j);}
    Matrix rotate()
    {
        Matrix ans;
        for(int i=0;i<n;i++)for(int j=0;j<n;j++)ans.a[i][j]=a[n-j-1][i];
        return ans;
    }
    Matrix reflex()
    {
        Matrix ans;
        for(int i=0;i<n;i++)for(int j=0;j<n;j++)ans.a[i][j]=a[i][n-j-1];
        return ans;
    }
    bool operator==(Matrix b)
    {
        for(int i=0;i<n;i++)for(int j=0;j<n;j++)
        if(a[i][j]!=b.a[i][j])return false;
        return true;
    }
}from,to,mid;
int main()
{
    scanf("%d",&n);
    from.in();to.in();
    mid=from;
    for(int i=1;i<=3;i++)
    {
        mid=mid.rotate();
        if(mid==to){printf("%d\n",i);return 0;}
    }
    mid=from.reflex();
    if(mid==to){printf("4\n");return 0;}
    for(int i=1;i<=3;i++)
    {
        mid=mid.rotate();
        if(mid==to){printf("5\n");return 0;}
    }
    if(from==to){printf("6\n");return 0;}
    printf("7\n");
    return 0;
}
  • P5733
#include<iostream>
using namespace std;
int main()
{
	char ch = getchar();
	while(ch != EOF)
	{
		if(ch >= 'a' && ch <= 'z')
			ch = ch-'a'+'A';
		cout<<ch;
		ch = getchar();
	}
}
  • P1914 注意直接使用char类型进行计算会超出char的范围
#include<iostream>
using namespace std;
int main()
{
	int a;
	cin >> a;
	a = a % 26;
	char ch = getchar();
	while(ch != EOF)
	{
		if(ch >= 'a' && ch <= 'z')
		{
			int c = ch + a;
			if(c > 'z') c = c - 26;
			ch = c;
			cout<<ch;
		}
		
		ch = getchar();
	}
}
  • P1125 注意特判 maxn-minn=0和1的情况
#include<iostream>
#include<math.h>
using namespace std;

int a[30];

int main()
{
	char ch = getchar();
	while(ch != EOF)
	{
		if(ch >= 'a' && ch <= 'z')
			a[ch-'a' + 1]++;
		if(ch >= 'A' && ch <= 'Z')
			a[ch-'A' + 1]++;
		ch = getchar();
	}
	int maxn = 0,minn = 100;
	for(int i = 1 ; i <= 26 ; i++)
	{
		if(a[i] > maxn) maxn = a[i];
		if(a[i] < minn && a[i] != 0) minn = a[i];
	}
	bool f = true;
	for(int i = 2;  i <= sqrt(maxn-minn) ; i++)
	{
		if((maxn - minn) % i == 0) 
		{
			f = false;
			break;
		}
	}
	if(f == false || maxn == minn || maxn - minn == 1)
		cout << "No Answer" << endl << 0;
	else
		cout << "Lucky Word" << endl << maxn - minn;
	
}
  • P1957
#include<iostream>
#include<string>
#include<cstring>
#include<stdlib.h>
using namespace std;

int main()
{
	int n;
	cin >> n;
	string s,s2;
	cin >> s;
	s2 = s;
	for(int i = 1 ; i <= n ; i++)
	{	
		string s3;
		int sum = 2;
		cin >> s;
		int a,b;
		if(s[0] >= '0' && s[0] <= '9') 
		{
			sum += s.length();
			a = atoi(s.c_str());
			s.clear();
			cin >> s;
			b = atoi(s.c_str());
			sum += s.length();
		}
		else
		{
			s2 = s;
			s.clear();
			cin >> s;
			a = atoi(s.c_str());
			sum += s.length();
			s.clear();
			cin >> s;
			b = atoi(s.c_str());
			sum += s.length();
		}
		s.clear();
		if(s2 == "a")
		{
			s = std::to_string(a+b);
			sum += s.length();
			cout  << a << "+" << b << "=" << a + b;
		}
		if(s2 == "b")
		{
			s = std::to_string(a-b);
			sum += s.length();
			cout  << a << "-" << b << "="  << a - b;
		}
		if(s2 == "c")
		{
			s = std::to_string(a*b);
			sum += s.length();
			cout  << a << "*" << b << "="  << a * b;
		}
		cout << "\n" << sum << "\n";
	}
}

LEAVE A COMMENT