zoukankan      html  css  js  c++  java
  • Can you AK NOIP?——NOIPxxxx普及组全解

    祝大家国庆节快乐地写作业

    不得不承认,现在在看这篇随笔的dalao们,您太巨了!!!

    不得不承认,这些题我都做了好几遍了。。。

    不得不承认,我今天RP太好。。。

    不得不承认,我得了300分。。。

    1.ISDBN号码

    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    char xyds[13];
    int ctoi(char a){//char to int
    	if(a=='X') return 10;
    	else return a-'0';
    }
    char itoc(int b){//int to char
    	if(b==10) return 'X';
    	else return b+'0';
    }
    int main()
    {
    	//freopen("isbn.in","r",stdin);
    	//freopen("isbn.out","w",stdout);
    	int s=0,sum=0,ans=0;
    	while(1){
    		char ch;
    		ch=getchar();
    		if(ch=='
    ') break;
    		xyds[sum]=ch;
    		sum++;
    		if(ch>='0'&&ch<='9'&&sum<=11) s++,ans+=ctoi(ch)*s;//计算前9位数字
    	}
    	if(ans%11==ctoi(xyds[12])) printf("Right");//末位正确,输出Right
    	else{
    		for(int i=0;i<=11;i++) cout<<xyds[i];//末位错误,则输出正确结果
    		cout<<itoc(ans%11);
    	}
    	return 0;
    }
    

    2.排座椅

    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int a[1001],b[1001],x[1001],y[1001];
    int main()
    {
    	//freopen("seat.in","r",stdin);
    	//freopen("seat.out","w",stdout);
    	int m,n,k,l,d;
    	scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
    	for(int i=1;i<n;i++) x[i]=i;
    	for(int i=1;i<m;i++) y[i]=i;
    	for(int i=1;i<=d;i++){
    		int x1,y1,x2,y2;
    		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
    		if(x1==x2) a[min(y1,y2)]++;//统计交头接耳学生对数
    		else b[min(x1,x2)]++;
    	}
    	for(int i=1;i<m-1;i++){//排序,取出前k组
    		for(int j=i+1;j<m;j++){
    			if(b[i]<b[j]){
    				swap(b[i],b[j]);
    				swap(y[i],y[j]);
    			}
    		}
    	}
    	sort(y,y+k+1);//对前k组对应的行数再次进行排序,保证有序输出
    	bool xyds=0;
    	for(int i=1;i<=k;i++){//输出
    		if(!xyds){//OJ输出格式错误有毒。。。
    			printf("%d",y[i]);
    			xyds=1;
    		}
    		else printf(" %d",y[i]);
    	}
    	printf("
    ");
    	for(int i=1;i<n-1;i++){//同上
    		for(int j=i+1;j<n;j++){
    			if(a[i]<a[j]){
    				swap(a[i],a[j]);
    				swap(x[i],x[j]);
    			}
    		}
    	}
    	sort(x,x+l+1);
    	bool djy=0;
    	for(int i=1;i<=l;i++){
    		if(!djy){
    			printf("%d",x[i]);
    			djy=1;
    		}
    		else 
    		printf(" %d",x[i]);
    	}
    	return 0;
    }
    

    3.传球游戏

    #include<algorithm>
    #include<cstdio>
    int dp[31][31];//DP大法好
    int n,m;
    int f(int x)
    {
    	if(x==0) return n;
    	else if(x==n+1) return 1;
    	else return x; 
    }
    int main()
    {
    	//freopen("ball.in","r",stdin);
    	//freopen("ball.out","w",stdout);
    	dp[0][1]=1;//初始化
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=m;i++){
    		for(int j=1;j<=n;j++) dp[i][j]=dp[i-1][f(j-1)]+dp[i-1][f(j+1)];//每个同学可以把球传给自己左右的两个同学中的一个,不解释
    	}
    	printf("%d",dp[m][1]);//回到了小蛮手里
    	return 0;
    }

     4.立体图(警告:本题主要考察大家的艺术功底,以下代码无法AC,并非正解,仅供娱乐)

    #include<algorithm>
    #include<cstdio>
    int main()
    {
    	//freopen("drawing.in","r",stdin);
    	//freopen("drawing.out","w",stdout);
    	printf("......+---+---+...+---+
    ");
    	printf("..+---+  /   /|../   /|
    ");
    	printf("./   /|-+---+ |.+---+ |
    ");
    	printf("+---+ |/   /| +-|   | +
    ");
    	printf("|   | +---+ |/+---+ |/|
    ");
    	printf("|   |/   /| +/   /|-+ |
    ");
    	printf("+---+---+ |/+---+ |/| +
    ");
    	printf("|   |   | +-|   | + |/.
    ");
    	printf("|   |   |/  |   |/| +..
    ");
    	printf("+---+---+---+---+ |/...
    ");
    	printf("|   |   |   |   | +....
    ");
    	printf("|   |   |   |   |/.....
    ");
    	printf("+---+---+---+---+......");
    	return 0;
    }
    

      

  • 相关阅读:
    线程池及其原理和使用
    多线程通信Queue
    Condition实现线程通信
    守护线程和锁
    习题 7:更多的打印
    习题 6:字符串和文本
    习题 5:更多的变量和打印
    习题 4:变量和命名
    习题 3:数字和数学计算
    习题 2:注解和#号
  • 原文地址:https://www.cnblogs.com/dong-ji-yuan/p/9734595.html
Copyright © 2011-2022 走看看