Codeforces 877C Slava and tanks(思维)
Posted Yeader
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 877C Slava and tanks(思维)相关的知识,希望对你有一定的参考价值。
题目链接:http://codeforces.com/problemset
题目大意:有n个格子,某些格子里可能有一个或多个坦克,但不知道具体位置,每个坦克被轰炸一次就会移动到相邻的格子里(第1个格子只能往第2个格子移动,第n个格子只能往第n-1个格子移动),被轰炸两次就会报废,问最少需要轰炸几次才能保证所有坦克全部报废,请输出轰炸的位置。
解题思路:其实就是先把1~n所有的偶数输出,再输出所有的奇数,再输出所有的偶数。因为通过题意可以知道我们需要让坦克出现在任意格子中都要被轰炸两次,才能保证摧毁所有坦克,也就是我们要轰炸每个格子,在每个被轰炸格子之后还要有两个相邻的格子被轰炸(1,n后只要一个),然后可以发现奇数的格子后需要两个偶数格子,偶数格子后需要一个奇数和一个偶数格子,所以得到规律按偶、奇、偶规律输出即可。
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 const int N=1e5+5; 6 7 int main(){ 8 int n; 9 scanf("%d",&n); 10 printf("%d\n",n/2*2+(n-n/2)); 11 for(int i=2;i<=n;i+=2){ 12 printf("%d ",i); 13 } 14 for(int i=1;i<=n;i+=2){ 15 printf("%d ",i); 16 } 17 for(int i=2;i<=n;i+=2){ 18 printf("%d ",i); 19 } 20 return 0; 21 }
以上是关于Codeforces 877C Slava and tanks(思维)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #442 (Div. 2) C. Slava and tanks
CodeForces 621AWet Shark and Odd and Even