[ 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\n",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\n",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("\n");
    }
    return 0;
}

原文地址:https://www.cnblogs.com/DF-yimeng/p/9630697.html

时间: 2024-10-08 22:11:56

[ 9.11 ]CF每日一题系列—— 441C暴力模拟的相关文章

[ 9.12 ]CF每日一题系列—— 960B暴力数组

Description: 给你两个数组,顺序一定,问你第一个数组连续的几个值等于下一个数组连续的几个值,然后寻找这个值得最大值,也就是满足就换 Solution: 用两个变量索引,判断即可 #include <iostream> #include <cstdio> using namespace std; const int maxn = 1e6 + 1e3; int a[maxn],b[maxn]; int main() { int n,m; while(~scanf("

[ 9.22 ]CF每日一题系列—— 484A Bits

Description: 给你一个l,r的区间让你找一个最小的x并且其二进制数要包含最多的1位,输出它的十进制 Solution: 我本来就是贪心,但是贪大了,想1一直往上添加1,但是忘记了0在中间的情况,考虑好了之后,发现这样贪是错误的,因为越往后位数越大,所以你最后的结果只能是1,11,111,1111,11111,而不可能是10,100,1001,10010,所以应该从后往前贪,这也是我们十进制转二进制的人工算法吧算是,十进制转二进制,手算的时候,就是一步一步确定最高位的1在哪里, cod

CF每日一题系列 —— 415A

http://codeforces.com/problemset/page/7?order=BY_SOLVED_DESC 从5000以内选的,emmm还是比较水的哈 时间还是有的,所以万事万物贵在坚持,希望能坚持下去! Describe: 1 - n个灯线性排列(初始为开),小明可以选择开关 op,这回把op - n 的灯全部关闭,如果(是关着的状态没有影响) 给你小明选择op的操作顺序,输出顺序输出每个灯是由哪个op操作关了的 Solution: 跑暴力就好了,我用了一个比较水的优化,记录当前

[ 9.26 ]CF每日一题系列—— 771B递推问题

Description: 给定你命名的规律,1-10个字符,开头必须大写,最多有50个名字,然后告诉你有n个人,判断区间长度为k,那么你将得到n - k + 1个答案(YES or NO) 表示1 - k,2 -k+1,n - K + 1-- n这些人里面是否没有重名,YES没有,NO有,让你推出一种名字的组合方式 Solution: 首先先跑出一个名字数组,这个题目要往后看,所以应该是从后往前推n - k + 2 到 n的名字没有要求,所以我们命名各不相同,从n - k + 1开始,如果是YE

[ 10.03 ]CF每日一题系列—— 534B贪心

Descripe: 贪心,贪在哪里呢-- 给你初始速度,结尾速度,行驶秒数,每秒速度可变化的范围,问你行驶秒数内最远可以行驶多少距离 Solution: 贪心,我是否加速,就是看剩下的时间能不能减到原始给定的结尾速度 #include <iostream> using namespace std; int main() { int v1,v2; int t,d; while(cin>>v1>>v2) { cin>>t>>d; int ret =

[ 10.4 ]CF每日一题系列—— 486C

Description: 给你一个指针,可以左右移动,指向的小写字母可以,改变,但都是有花费的a - b 和 a - z花费1,指针移动也要花费,一个单位花费1,问你把当前字符串变成回文串的最小化费是多少 Solution: 真是贪啊,也怪我没咋理解题意~~ 首先对于字母的调整肯定是有一个最优值得,无法改变的,能改变的就是我们是改变左区间的还是右边的呢? 我们可以记录改变字母的最大区间长度(一半的区间),我们从0遍历到中间,得到左区间的范围,如过p在左区间就用这个范围,否则用右区间的范围,所以不

[ 10.08 ]CF每日一题系列—— 602B

Description: 一个数组,保证相邻两个元素值得差小于1,问题,最大值和最小值的差 < 1的区间长度最长是多少 Solution: 还是卡了一下,本来以为是模拟就好了,但是卡时间,想来想去最后还是忽略了一个地方,就是它的保证,相邻元素值得差小于1,就保证了这个序列得变化是以1或0为单位相邻变化的,所以不可能出现5 4 6,所以我们考虑一个数字x的时候只要去找出现的位置就好,我们要找的可能区间有x 和 x + 1区间或者x 和 x - 1区间,所以我们看一下上一个x - 1 出现的位置和x

CISP/CISA 每日一题 11

CISA 每日一题(答) 一个合理建造的数据仓库应当支持下列三种基本的查询格式: 1.向上溯源和向下溯源--向上溯源是对数据进行总计:向下溯源是将数据进行细化: 2.交叉溯源--通过通用属性访问数据仓库中内容有交叉的信息 3.历史分析--数据仓库应当储存具有时间变量的数据,支持数据历史分析   IT 服务包括: 信息系统运行.IT 服务和信息系统管理,以及负责支持的群体 CISSP每日一题 以下哪项技术描述了在单个计算机系统中使用多个处理器来增加计算机应用环境中的计算性能? A. 流水线 B.

老男孩教育每日一题-第110天-find命令-size参数

老男孩教育每日一题-第110天-find命令-size参数1.查找当前目录下以log结尾的大于50k小于2M的普通文件2.查找当前目录下以log结尾的小于50k大于2M的普通文件以上两个问题有什么不同? 参考答案: 测试环境: [[email protected] tmp]# pwd /root/tmp [[email protected] tmp]# ll -h total 7.4M -rw-r--r-- 1 root root   262 Jul 30 15:45 a.log -rw-r--