赞
踩
#include <iostream> #include<cstring> #include<algorithm> #include<math.h> using namespace std; const int N=100; int main(int argc, char** argv) { int n,m; int a[N][N];//定义数组 int count=0; int sum[N]; cin>>n>>m; memset(sum,0,sizeof(sum)); for(int i=1;i<=n;i++){ for(int j=0;j<=m;j++){ cin>>a[i][j]; if(a[i][j]<=0){ sum[i]+=abs(a[i][j]);//每棵树上面的疏果个数 } count+=a[i][j];//苹果个数总和 } } //排序 //找到最多的那个疏果数 int index=0; int max=0; for(int i=1;i<=n;i++){ if(sum[i]>max){ max=sum[i]; index=i; } } cout<<count<<" "<<index" "<<max<<endl; return 0; }
试题描述
代码
#include <iostream> #include<cstring> #include<algorithm> #include<math.h> using namespace std; const int N=101; int main(){ int n,m; //t为全部疏果操作结束后所有苹果树上剩下的苹果总数 //d为发生苹果掉落的颗树 //e为相邻连续三棵树发生苹果掉落情况的组数 int t=0,d=0,e=0; bool flag[N]; int a[N][N]; int count=0; int temp_sum=0; int sum[N]; memset(sum,0,sizeof(sum)); memset(flag,false,sizeof(flag)) ; cin>>n;//苹果树的颗树 for(int i=1;i<=n;i++){ cin>>m;//表示本行后面的整数个数 cin>>a[i][1]; sum[i]=a[i][1]; for(int j=2;j<=m;j++){ cin>>a[i][j]; if(a[i][j]<=0){ sum[i]+=a[i][j]; }else{ //temp_sum=sum[i]; if(a[i][j]<sum[i]){ //若发生了苹果掉落的情况 d++; flag[i]=true; } sum[i]=0; sum[i]+=a[i][j]; } } t+=sum[i]; } //计算发生掉落的次数 for(int k=1;k<=n;k++){ if(flag[k]&&flag[k+1]&&flag[k+2]){ e++; } } if(flag[n-1]&&flag[n]&&flag[1]) e++; if(flag[n]&&flag[1]&&flag[2]) e++; cout<<t<<" "<<d<<" "<<e<<endl; return 0; }
#include<iostream> #include<set> #include<algorithm> using namespace std; struct Point{ int x; int y; Point(int _x,int _y){ x=_x; y=_y; } //定义规则 bool operator<(const Point &p)const{ if(x==p.x){ return y<p.y; }else{ return x<p.x; } } }; int n; int ans[5]; set<Point> pts; bool find(int x,int y) { if(pts.find(Point(x,y))!=pts.end()) return true; return false; } int main(){ cin>>n; int x,y; for(int i=0;i<n;i++){ cin>>x>>y; pts.insert(Point(x,y)); } for(set<Point>::iterator it=pts.begin();it!=pts.end();it++){ x=(*it).x; y=(*it).y; //若符合回收站址 if(find(x,y+1)&&find(x,y-1)&&find(x+1,y)&&find(x-1,y)){ //计算 回收站 个数 int cnt=0; if(find(x-1,y+1)) cnt++; if(find(x+1,y+1)) cnt++; if(find(x-1,y-1)) cnt++; if(find(x+1,y-1))cnt++; ans[cnt]++; } } for(int i=0;i<5;i++){ cout<<ans[i]<<endl; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。