第18次csp认证 201912-2 回收站选址(C++)
生活随笔
收集整理的這篇文章主要介紹了
第18次csp认证 201912-2 回收站选址(C++)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
分析
- 每一個(gè)垃圾堆放處都可能是回收站,所以?xún)奢喲h(huán),找出所有可以成為回收站的坐標(biāo)。
- 再兩輪循環(huán),確定所有回收站的得分
- 最后輸出每種得分的回收站個(gè)數(shù)
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{}}}}//確定回收站評(píng)分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{}}}}//統(tǒng)計(jì)不同得分的回收站個(gè)數(shù)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]++;}}}//輸出結(jié)果for(i=0; i<5; i++){cout<<count[i];if(i!=4)cout<<endl;}return 0; }如果您有問(wèn)題或者其他解題方法,歡迎在評(píng)論區(qū)留言o
總結(jié)
以上是生活随笔為你收集整理的第18次csp认证 201912-2 回收站选址(C++)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安卓震动按摩仪(安卓震动)
- 下一篇: pat 乙级 1036 跟奥巴马一起编程