给你三个数字a,b,c,让你用1~m的数字凑出来

结论:有2个1和2个2肯定凑不出来,然后就搜索

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i, j, k) for (int i = int(j); i <= int(k); ++ i)
  4. #define dwn(i, j, k) for (int i = int(j); i >= int(k); -- i)
  5. typedef long long LL;
  6. typedef pair<int, int> P;
  7. const int N = 3e5 + ;
  8. char col[N];
  9. int dfs(int i, int j, int k, int x) {
  10. if (i == && j == && k == ) return ;
  11. if (i < || j < || k < || x <= ) return ;
  12. col[x] = ;
  13. if (dfs(i - x, j, k, x - )) return ;
  14. col[x] = ;
  15. if (dfs(i, j - x, k, x - )) return ;
  16. col[x] = ;
  17. if (dfs(i, j, k - x, x - )) return ;
  18. return ;
  19. }
  20. int main() {
  21. ios::sync_with_stdio();
  22. LL a, b, c;
  23. cin >> a >> b >> c;
  24. LL n = a + b + c;
  25. LL x = ;
  26. for (x = ; n > ; x ++) n -= x; x --; int xx = x;
  27. int c1 = (a == ) + (b == ) + (c == );
  28. int c2 = (a == ) + (b == ) + (c == );
  29. if (c1 >= || c2 >= || n != ) {
  30. printf("Impossible\n");
  31. return ;
  32. }
  33. dfs(a, b, c, x);
  34. // cout << a << ' ' << b << ' ' << c << ' ' << x << '\n';
  35. auto tran = [&](int x) -> char {
  36. if (x == ) return 'W';
  37. if (x == ) return 'G';
  38. return 'B';
  39. };
  40. rep(i, , xx) printf("%c", tran(col[i]));
  41. }
  42. /*
  43. 11 5 5
  44. */

Petrozavodsk Winter Camp, Day 8, 2014, Mosaic的更多相关文章

  1. Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet

    一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...

  2. Petrozavodsk Winter Camp, Day 8, 2014, Ship

    $dp(i,j)$表示i-j这段还没运走时的状态,包括 运输了多少次,还剩多少空间 每次枚举运输左边还是右边转移 #include <bits/stdc++.h> #define rep( ...

  3. Petrozavodsk Winter Camp, Day 8, 2014, Fine Brochures

    1的个数-块的个数+多减的个数+flag 多减的只会在一个循环末尾出现 #include <bits/stdc++.h> using namespace std; #define rep( ...

  4. Petrozavodsk Winter Camp, Day 8, 2014, Second Trip

    给你一棵树,每次询问一个(a,b),问有多少有路径与a-b没有交集 找lca #include <bits/stdc++.h> using namespace std; #define r ...

  5. 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 ...

  6. Petrozavodsk Winter Camp, Andrew, 2014, Dichromatic Trees

    条件: 1:每个红色节点的儿子都是黑色节点 2.每个叶子到根路径上的黑点数相等,等于某个常数,称作树的black height 求给定black height和节点数的符合条件的方案数 $black_ ...

  7. 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}^ ...

  8. 2018 Petrozavodsk Winter Camp, Yandex Cup

    A. Ability Draft solved by RDC 60min start, 148 min AC, 1Y 题意:两只 Dota 队伍,每队 \(n\) 个英雄,英雄一开始无技能,他们需要按 ...

  9. 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流

    建图一共建四层 第一层为N个歌手 第二层为{pi,li} 第三层为{si,li} 第四层为M首歌 除了S和第一层与第三层与T之间的边为[1,INF] 其他边均为[0,1] #include<bi ...

随机推荐

  1. linux c生成唯一文件名称

    linux c生成唯一文件名称可用mktemp()或mkstemp()函数

  2. Centos7.1环境下搭建SVN

    环境准备: 系统 配置 IP Centos7.1 1核2G+60GB硬盘 10.10.28.204 1.安装 sudo yum install subversion 查看版本 svnserve –-v ...

  3. 后台管理界面admin

    admin组件:展示数据表,快速的录入数据. 为了安全,可以在路由分发时修改下admin的名字.(一定要改) 1.不想使用英文,则在app里的settings修改一下(在最下面的位置) LANGUAG ...

  4. GitHub学习总结

    一.安装git:下载Git,官网地址:https://git-scm.com/,进入官网首页,然后点击download,下载对应系统的git就行. 二.我用的是win系统,打开git界面是这样的: 在 ...

  5. [elk]elasticsearch dsl语句

    例子1 统计1,有唱歌兴趣的 2,按年龄分组 3,求每组平均年龄 4,按平均年龄降序排序 sql转为dsl例子 # 每种型号车的颜色数 > 1的 SELECT model,COUNT(DISTI ...

  6. 110A

    #include <stdio.h> #include<string.h> #define MAXSIZE 30 int main() { char digits[30]; m ...

  7. python队列基本使用

    Python queue队列 作用: 解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系. 提高处理效率:FIFO = 现进先出,LIFO = 后入先出.   队列: 队列可以并发的派多个线程, ...

  8. nuxtJs中直接使用自带的@nuxtjs/axios

    最初我以为在nuxtjs中是需要重新npm install axios,但是其实nuxtjs自己集成了这个数据渲染方法 你只需在nuxt.config.js中配置一下就可以了 modules: [ / ...

  9. 竖倾斜ScrollView

    using UnityEngine; using UnityEngine.EventSystems; public class ObliqueScroll : MonoBehaviour,IDragH ...

  10. Java 多重catch语句的具体使用介绍

    某些情况,由单个代码段可能引起多个异常.处理这种情况,你可以定义两个或更多的catch子句,每个子句捕获一种类型的异常.当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句执行.当 ...