https://vjudge.net/contest/174235#problem/H [题意] 求[x,y]之间有多少个Sheldon Number Sheldon Number是二进制满足以下条件的数: 可以写成ABABAB . . . ABA或ABABAB . . . AB,其中,A是连续的n个1,B是连续的m个0 这个二进制数可以没有0但不能没有1 [思路] 对于确定的n,m,和二进制数的长度len,二进制数唯一确定的,所以按n,m,len枚举的话复杂度为64^3 我们可以预处理所有的S…
题目链接:http://codeforces.com/gym/101128 题目数7/10 Rank 34/209 A: 题意:给出一张n个点的有向图表示一家有n个员工的公司的隶属图,u->v表示u是v的上司,现在老板要提拔一些人,但是规定如果一个员工被提拔,那么他的上司也要被提拔,现给出两个整数a和b表示一区间,求三个值,第一个值表示如果提拔a个人那么这n个中必须要被提拔的人数,第二个值表示如果提拔b个人那么这n个人中必须要被提拔的人数,第三个值表示就算提拔b个人也不会被提拔的人数 解法:前两…
时间:2017/9/8 题目8/10 Rank 5/150 体会:三星的题目和国内区域赛差距大,大多数题读懂题意就能做,所以静心读题是关键,套路性太深. A: 题意:给出一个算式,算式中的数字用大写字母代替.每个字母只能代替一个数字,一个数字也只能被一个字母代替.有多少种数字分配方式可以使得这个算式成立? 解法:爆搜.一共不超过十个字母,把这十个字母列出来然后进行dfs分配数字,分配完后就进行验证是否可以满足式子,还要考虑累加的n-1个数不能是前导0,. #include <bits/stdc+…
https://vjudge.net/contest/174235#problem/D [题意] 给定n个已知size的帆布,要给这n块帆布涂上不同的颜色,规则是这样的: 每次选择一种颜色C 对于颜色为C的所有帆布都要涂上颜色,其中前F个涂为颜色X,剩下的涂为颜色Y,X和Y都是不同于任何已知颜色的颜色 每次涂颜色用掉的墨水用量都是帆布的size 重复步骤2和3直到所有的帆布都是不同的颜色 求最少要多少墨水 [思路] 第一次涂把帆布变成两种颜色,剩下每次涂色都是增加一种颜色,所以n块帆布一定是涂n…
C. Canvas Painting 合并果子. E. Wooden Signs \(dp(i,l,r)\)表示第\(i\)块木板的长度区间为\([l,r]\)的方案数,根据题意,\(l\)或\(r\)会等于\(p_i\). 转移的时候只需要枚举跟\(p_{i-1}\)相关的区间即可. F. Landscaping 对于每个格子拆成两个点,分别表示高地势与低地势,这两个点分别和\(S,T\)连边,容量为属于不同集合的代价. 每个格子和它相邻格子属于不同地势时,连一条容量为\(A\)的边. 对于\…
题意 一个公司里有E个员工P个上下级关系.这个公司有一种晋升制度.如果要晋升员工a,那么必须要先晋升a的所有领导.给出一个区间[A,B],如果要晋升A个员工,有哪些员工是一定会被晋升的?如果要晋升B个员工,有哪些员工是一定会被晋升的?如果晋升B个员工,有哪些员工是一定不会被晋升的? 分析 这个描述再加上那个样例的图片实在太TM像拓扑排序了啊!当时在场上写了个拓扑排序然后WA的很惨 如果要晋升A个员工,哪些员工是一定会被晋升的?当这个员工的下属数量(包括他自己)大于n-A的时候,则必须晋升它 那么…
ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s RectangleProblem B: What does the fox say?Problem C: Magical GCDProblem D: SubwayProblem E: EscapeProblem F: DraughtsProblem G: History courseProblem H: C…
http://acm.hunnu.edu.cn/online/problem_pdf/CERC2012/H.pdf HUNNU11377 题意:飞镖环有十个环,没个环从外到里对应一个得分1~10,每个环有一定的半径,给出n次丢飞镖的坐标,求出得分 思路:直接算出左边离原点的半径判断在哪个环里即可,然后求出半径,一开始将判断全部写成了函数,在循环里调用超时了,将所有判断移到循环内就AC了,坑! #include <stdio.h> #include <math.h> #include…
A. Assignment Algorithm 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string.h> #include<string> #include<ctype.h> #include<math.h> #include<set> #include<map> #include<vector> #include<que…
H题意: 给你一个n个节点n-1条无向边构成的树,每一个节点有一个权值wi,你需要把这棵树划分成k个子树,每一个子树的权值是这棵子树上所有节点权值之和. 你要输出这k棵子树的权值中那个最大的.你需要让输出的结果尽可能小 题解: 二分结果,重要的是判断这个二分的值是否满足题目要求 对于划分子树的选择,就选择子树中权值最大且又满足二分的答案的那个子树 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; co…