Petrozavodsk Winter Camp, Day 8, 2014, Mosaic
给你三个数字a,b,c,让你用1~m的数字凑出来
结论:有2个1和2个2肯定凑不出来,然后就搜索
- #include <bits/stdc++.h>
- using namespace std;
- #define rep(i, j, k) for (int i = int(j); i <= int(k); ++ i)
- #define dwn(i, j, k) for (int i = int(j); i >= int(k); -- i)
- typedef long long LL;
- typedef pair<int, int> P;
- const int N = 3e5 + ;
- char col[N];
- int dfs(int i, int j, int k, int x) {
- if (i == && j == && k == ) return ;
- if (i < || j < || k < || x <= ) return ;
- col[x] = ;
- if (dfs(i - x, j, k, x - )) return ;
- col[x] = ;
- if (dfs(i, j - x, k, x - )) return ;
- col[x] = ;
- if (dfs(i, j, k - x, x - )) return ;
- return ;
- }
- int main() {
- ios::sync_with_stdio();
- LL a, b, c;
- cin >> a >> b >> c;
- LL n = a + b + c;
- LL x = ;
- for (x = ; n > ; x ++) n -= x; x --; int xx = x;
- int c1 = (a == ) + (b == ) + (c == );
- int c2 = (a == ) + (b == ) + (c == );
- if (c1 >= || c2 >= || n != ) {
- printf("Impossible\n");
- return ;
- }
- dfs(a, b, c, x);
- // cout << a << ' ' << b << ' ' << c << ' ' << x << '\n';
- auto tran = [&](int x) -> char {
- if (x == ) return 'W';
- if (x == ) return 'G';
- return 'B';
- };
- rep(i, , xx) printf("%c", tran(col[i]));
- }
- /*
- 11 5 5
- */
Petrozavodsk Winter Camp, Day 8, 2014, Mosaic的更多相关文章
- Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...
- Petrozavodsk Winter Camp, Day 8, 2014, Ship
$dp(i,j)$表示i-j这段还没运走时的状态,包括 运输了多少次,还剩多少空间 每次枚举运输左边还是右边转移 #include <bits/stdc++.h> #define rep( ...
- Petrozavodsk Winter Camp, Day 8, 2014, Fine Brochures
1的个数-块的个数+多减的个数+flag 多减的只会在一个循环末尾出现 #include <bits/stdc++.h> using namespace std; #define rep( ...
- Petrozavodsk Winter Camp, Day 8, 2014, Second Trip
给你一棵树,每次询问一个(a,b),问有多少有路径与a-b没有交集 找lca #include <bits/stdc++.h> using namespace std; #define r ...
- Petrozavodsk Winter Camp, Day 8, 2014, Rectangle Count
给一个n*m的格点图,问其中有多少个矩形? $ \sum_{x=1}^{nm} \sum_{ab=x} [a + b \leq n](n - a - b + 1)\sum_{cd=x} [c + d ...
- Petrozavodsk Winter Camp, Andrew, 2014, Dichromatic Trees
条件: 1:每个红色节点的儿子都是黑色节点 2.每个叶子到根路径上的黑点数相等,等于某个常数,称作树的black height 求给定black height和节点数的符合条件的方案数 $black_ ...
- Petrozavodsk Winter Camp, Andrew, 2014, Bipartite Bicolored Graphs
由i个点和j个点组成的二分图个数为 $3^{ij}$,减去不联通的部分得到得到由i,j个点组成的联通二分图个数 $g_{i,j} = 3_{ij} - \sum_{k=1}^i \sum_{l=0}^ ...
- 2018 Petrozavodsk Winter Camp, Yandex Cup
A. Ability Draft solved by RDC 60min start, 148 min AC, 1Y 题意:两只 Dota 队伍,每队 \(n\) 个英雄,英雄一开始无技能,他们需要按 ...
- 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流
建图一共建四层 第一层为N个歌手 第二层为{pi,li} 第三层为{si,li} 第四层为M首歌 除了S和第一层与第三层与T之间的边为[1,INF] 其他边均为[0,1] #include<bi ...
随机推荐
- linux c生成唯一文件名称
linux c生成唯一文件名称可用mktemp()或mkstemp()函数
- Centos7.1环境下搭建SVN
环境准备: 系统 配置 IP Centos7.1 1核2G+60GB硬盘 10.10.28.204 1.安装 sudo yum install subversion 查看版本 svnserve –-v ...
- 后台管理界面admin
admin组件:展示数据表,快速的录入数据. 为了安全,可以在路由分发时修改下admin的名字.(一定要改) 1.不想使用英文,则在app里的settings修改一下(在最下面的位置) LANGUAG ...
- GitHub学习总结
一.安装git:下载Git,官网地址:https://git-scm.com/,进入官网首页,然后点击download,下载对应系统的git就行. 二.我用的是win系统,打开git界面是这样的: 在 ...
- [elk]elasticsearch dsl语句
例子1 统计1,有唱歌兴趣的 2,按年龄分组 3,求每组平均年龄 4,按平均年龄降序排序 sql转为dsl例子 # 每种型号车的颜色数 > 1的 SELECT model,COUNT(DISTI ...
- 110A
#include <stdio.h> #include<string.h> #define MAXSIZE 30 int main() { char digits[30]; m ...
- python队列基本使用
Python queue队列 作用: 解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系. 提高处理效率:FIFO = 现进先出,LIFO = 后入先出. 队列: 队列可以并发的派多个线程, ...
- nuxtJs中直接使用自带的@nuxtjs/axios
最初我以为在nuxtjs中是需要重新npm install axios,但是其实nuxtjs自己集成了这个数据渲染方法 你只需在nuxt.config.js中配置一下就可以了 modules: [ / ...
- 竖倾斜ScrollView
using UnityEngine; using UnityEngine.EventSystems; public class ObliqueScroll : MonoBehaviour,IDragH ...
- Java 多重catch语句的具体使用介绍
某些情况,由单个代码段可能引起多个异常.处理这种情况,你可以定义两个或更多的catch子句,每个子句捕获一种类型的异常.当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句执行.当 ...