CCSP2017
一道很簡單的模擬題 啊啊啊把自己快坑死了
沒有找到可以測試的窗口 ?過了樣例和一些題目描述的特例 ?
求大佬給個測試入口
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int mapp[45][45]; char xx[45]; int n; typedef struct node {int x,y; } ans; ans a[1000]; int check(int i,int j,int jd) {if(i>n||j>n||i<0||j<0)return 0;else if(jd!=0&&jd!=1)return 1;elsereturn 0; } int anly() {int sum=0,s=0;//行for(int i=0; i<n; i++){s=0;for(int j=0; j<n; j++){if(mapp[i][j]==2){s++;}else{if(s>=5)sum++;s=0;}}if(s>=5)sum++;}//列for(int j=0; j<n; j++){s=0;for(int i=0; i<n; i++){if(mapp[i][j]==2){s++;}else{if(s>=5)sum++;s=0;}}if(s>=5)sum++;}if(n>=5){int cc=(n-5)+1;int nx=0,ny=0;for (int i=0; i<cc; i++){//反斜杠s=0;if(i==0){nx=0,ny=0;while(nx<n&&ny<n){if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny++;}if(s>=5)sum++;}else{s=0;nx=i;ny=0;while(nx<n&&ny<n){//cout<<nx<<" "<<ny<<" "<<mapp[nx][ny]<<endl;if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny++;}if(s>=5)sum++;s=0;nx=0;ny=i;while(nx<n&&ny<n){//cout<<nx<<" "<<ny<<" "<<mapp[nx][ny]<<endl;if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny++;}if(s>=5)sum++;//cout<<"end"<<endl;}}nx=0,ny=n-1;for (int i=0; i<cc; i++){s=0;if(i==0){nx=0,ny=n-1;while(nx<n&&ny>=0){//cout<<nx<<" "<<ny<<" "<<mapp[nx][ny]<<endl;if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny--;}if(s>=5)sum++;}else{s=0;nx=0;ny=n-1-i;while(nx<n&&ny>=0){// cout<<nx<<" "<<ny<<" "<<mapp[nx][ny]<<endl;if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny--;}if(s>=5)sum++;s=0;nx=i;ny=n-1;while(nx<n&&ny>=0){if(mapp[nx][ny]==2){s++;}else{if(s>=5)sum++;s=0;}nx++;ny--;}if(s>=5)sum++;//cout<<"end"<<endl;}}}return sum; } void dis() {for(int i=0; i<n; i++){for(int j=0; j<n; j++){cout<<mapp[i][j]<<" ";}cout<<endl;} } bool cmp1(node a,node b) {if(a.y!=b.y)return a.y<b.y;elsereturn a.x<b.x; } int main() {// freopen("C:\\Users\\43436\\Desktop\\wuzi\\data\\20.in","r",stdin);// freopen("22.out","w",stdout);// freopen("1.out","w",stdout);while(cin>>n){int cnt=0;getchar();for(int i=0; i<n; i++){gets(xx);for(int j=0; j<n; j++){if(xx[j]=='*')mapp[i][j]=0;else if(xx[j]=='w')mapp[i][j]=2;elsemapp[i][j]=1;}}int k=anly();for(int i=0; i<n; i++){for(int j=0; j<n; j++){if(mapp[i][j]==0){mapp[i][j]=2;/* if(j==29&&i==5){dis();puts("");cout<<k<<" "<<anly()<<endl;}*/if(k<anly()){a[cnt].y=i;a[cnt++].x=j;}mapp[i][j]=0;}}}//dis();sort(a,a+cnt,cmp1);for(int i=0; i<cnt; i++){cout<<a[i].x<<" "<<a[i].y<<endl;}}return 0; }?
總結
- 上一篇: 2016百度之星 - 资格赛(Astar
- 下一篇: docker 部署 subversion