[ 9.11 ]CF每日一题系列—— 441C暴力模拟
Posted df-yimeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 9.11 ]CF每日一题系列—— 441C暴力模拟相关的知识,希望对你有一定的参考价值。
Description:
n * m 的地图,建设k个管道管道只能横竖走,且长度大于等于2,问你任意一种建设方法
Solution:
图里没有障碍,所以先把前k - 1个管道每个分2个长度,最后一个管道一连到底
Code:
PS:今天时间没来的急,其实函数可以封装一下的,虽然都是暴力,但也得暴力的优美不是??
#include <iostream> #include <cstdio> using namespace std; int main() { int n,m,k; while(~scanf("%d%d%d",&n,&m,&k)) { int all = n * m; int num = 0; int i = 1; int x = 1; int y = 1; while(x <= n && y <= m) { while(y <= m) { if(i < k && num == 0) { printf("%d %d %d",2,x,y); ++num; } else if(i < k && num == 1) { printf(" %d %d ",x,y); num = 0; ++i; } else if(i == k) { ++i; printf("%d %d %d",all - k * 2 + 2,x,y); } else if(i > k) { printf(" %d %d",x,y); } y++; } y--; x++; if(x > n)break; while(y >= 1) { if(i < k && num == 0) { printf("%d %d %d",2,x,y); ++num; } else if(i < k && num == 1) { printf(" %d %d ",x,y); num = 0; ++i; } else if(i == k) { ++i; printf("%d %d %d",all - k * 2 + 2,x,y); } else if(i > k) { printf(" %d %d",x,y); } y--; } y++;x++; } printf(" "); } return 0; }
以上是关于[ 9.11 ]CF每日一题系列—— 441C暴力模拟的主要内容,如果未能解决你的问题,请参考以下文章