导航菜单
首页 >  acm竞赛真题  > 【题目记录】

【题目记录】

文章目录B Mine Sweeper II 思维D WalkerG Fibonacci 思维+规律M Gitignore (模拟+思维) 题目地址 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)这次题目稍微简单一些,我们做了三个,B,G,M,本来D题应该能做出来的,但是我当时没有考虑全面,脑子混乱,结果没做出来,最后的

B Mine Sweeper II 思维

题目地址B Mine Sweeper II 题目大意:类似扫雷,有扫雷的规则,不过这个是挖矿,我基于扫雷来说明题意,一个网格,有的地方有雷,有的地方没有雷,没有雷的格子显示这个格子一周8个格子中雷的个数。输入中的.表示没有雷的位置,x表示有雷的位置。给两个mn的网格,让你更改第二个网格中有没有雷的状态,最多更改 ⌊ mn 2⌋ \lfloor\frac{mn}{2}\rfloor⌊2mn​⌋次,让第二个网格中所有没有雷的格子上的数字的和等于第一个网格中的数字和。 思路:总之,最后是要么将第二个格网格改成第一个网格一样的,要么改成与第一个网格相反的。有一个规律,如果改成与第一个网格相同需要a次那么改成与第一个网格相反的则需要mn-a次,同时保证了他们的数字和相同 AC代码:

#include #define ll long long#define INF 0x3f3f3f3fusing namespace std;string strs[1005];string strs2[1005];int a[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};int judge(int n,int m){int ans=0;for(int i=0;i> p1 >> v1 >> p2 >> v2;if(p1 > p2){swap(p1,p2),swap(v1,v2);}double ans = 0;ans = min((min(n - p1,p1) + n) / v1,(min(n - p2,p2) + n) / v2);ans = min(ans,max((n - p1) / v1,p2 / v2));double l = p1,r = p2;for(int i = 1;i n;int ans = 0;for (int i = 1; i > m;for (int i = 0; i > str1[i];for (int i = 0; i > str2[i];for (int i = 0; i

相关推荐: