第18次csp认证 201912-2 回收站选址(C++)
生活随笔
收集整理的這篇文章主要介紹了
第18次csp认证 201912-2 回收站选址(C++)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
分析
- 每一個垃圾堆放處都可能是回收站,所以兩輪循環,找出所有可以成為回收站的坐標。
- 再兩輪循環,確定所有回收站的得分
- 最后輸出每種得分的回收站個數
AC代碼
#include <iostream> #include<string> using namespace std; struct node {int x,y,flag,count; }; int count[5]; int main() {int i,j,n;cin>>n;node a[n];for(i=0; i<n; i++){cin>>a[i].x>>a[i].y;a[i].flag=0;a[i].count=0;} //確定回收站for(i=0; i<n; i++){for(j=0; j<n; j++){if(i!=j){if(a[i].x==a[j].x)//上下是否有垃圾堆{if(a[i].y==a[j].y-1||a[i].y==a[j].y+1)a[i].flag++;}else if(a[i].y==a[j].y)//左右是否有垃圾堆{if(a[i].x==a[j].x-1||a[i].x==a[j].x+1)a[i].flag++;}else{}}}}//確定回收站評分for(i=0; i<n; i++){for(j=0; a[i].flag==4&&j<n; j++){if(i!=j){if(a[i].x==a[j].x+1)//左上左下{if(a[i].y==a[j].y-1||a[i].y==a[j].y+1)a[i].count++;}else if(a[i].x==a[j].x-1)//右上右下{if(a[i].y==a[j].y-1||a[i].y==a[j].y+1)a[i].count++;}else{}}}}//統計不同得分的回收站個數for(i=0; i<n; i++){if(a[i].flag==4){if(a[i].count==0){count[0]++;}else if(a[i].count==1){count[1]++;}else if(a[i].count==2){count[2]++;}else if(a[i].count==3){count[3]++;}else{count[4]++;}}}//輸出結果for(i=0; i<5; i++){cout<<count[i];if(i!=4)cout<<endl;}return 0; }如果您有問題或者其他解題方法,歡迎在評論區留言o
總結
以上是生活随笔為你收集整理的第18次csp认证 201912-2 回收站选址(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓震动按摩仪(安卓震动)
- 下一篇: pat 乙级 1036 跟奥巴马一起编程