zoukankan      html  css  js  c++  java
  • 201909-2 小明种苹果(续)

    题目如下:

      第一次的代码如下:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define M 1010
    int main(){
    	int c;
    	long long p=0,q=0,r=0,s=0,t=0;
    	scanf("%d",&c);
    	long long m[M],n[M];
    	bool a[M][M] ={false};
    	for(long long i=0;i<c;i++){
    	scanf("%lld%lld",&m[i],&n[i]);
    	a[m[i]][n[i]]=true;
    	}
    	for(long long i=0;i<M;i++) {
    		for(long long j=0;j<M;j++){
    			if(a[i][j]){
    				if(a[i+1][j]&&a[i-1][j]&&a[i][j+1]&&a[i][j-1]){
    				if(a[i+1][j-1]&&a[i-1][j-1]&&a[i-1][j+1]&&a[i+1][j+1])
    					t++;
    				else if((a[i+1][j-1]&&a[i-1][j-1]&&a[i-1][j+1])||(a[i+1][j-1]&&a[i-1][j-1]&&a[i+1][j+1])||(a[i+1][j-1]&&a[i-1][j+1]&&a[i+1][j+1])||(a[i-1][j-1]&&a[i-1][j+1]&&a[i+1][j+1]))
    					s++;
    				else if((a[i+1][j-1]&&a[i-1][j-1])||(a[i+1][j-1]&&a[i-1][j+1])||(a[i+1][j-1]&&a[i+1][j+1])||(a[i-1][j-1]&&a[i-1][j+1])||(a[i-1][j+1]&&a[i+1][j+1])||(a[i-1][j-1]&&a[i+1][j+1]))
    					r++;
    				else
    					q++;
    				}
    			}
    		}
    	}
    	printf("%lld
    %lld
    %lld
    %lld
    %lld",p,q,r,s,t);
    }

    思路:

    1.算出T比较容易

    2.算D,有点容易出错,一棵树顶多只能加一次D

    3.算E,最难,始终不会实现循环,用求余的方法即可

    正确代码如下:

    #include<cstdio> 
    #include<iostream> 
    #include<algorithm>
    using namespace std;
    int main(){
    	int T=0,n,m,x,D=0,E=0,a;
    	cin>>n;
    	bool f[n]={};
    	for(int i=0;i<n;i++){
    		cin>>m>>x;
    		int y=x;
    		for(int j=1;j<m;j++){
    			cin>>a;
    			if(a<=0)
    			y+=a;
    			else{
    				if(a<y){
    //				D++; 不可以在这个地方直接加 ,如果第一颗树发生了多次掉落
    //    那么会重复计算 
    				f[i]=true;
    				}
    				y=a;	
    			}
    		}
    		T+=y; 
    		}
    		for(int i=0;i<n;i++)
    		if(f[i])
    		D++;
    		for(int i=0;i<n;i++){
    			if(f[i]&&f[(i+1)%n]&&f[(i+2)%n]) 
    			E++;
    		}  //如何算循环的
    	cout<<T<<" " <<D<<" "<<E;
    	return 0;
    }
    //5
    //4 10 0 9 0
    //4 10 -2 7 0
    //2 10 0
    //4 10 -3 5 0
    //4 10 -1 8 0
    
    //4
    //4 74 -7 -12 -5
    //5 73 -8 -6 59 -4
    //5 76 -5 -10 60 -2
    //5 80 -6 -15 59 0
    

      

    无聊就学习 反正没事干
  • 相关阅读:
    struts1.2一些知识
    iText的用法
    <action里的input的作用
    CSS超链接样式常见四种状态控制
    Win7系统IIS7+Tomcat7集成
    Marquee 使用方法详解
    JAVA中String与StringBuffer的区别
    2020 8 31 每日总结
    2020 10 1
    2020 9 30
  • 原文地址:https://www.cnblogs.com/miao-xixixi/p/13704838.html
Copyright © 2011-2022 走看看