枚举
文章平均质量分 92
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Moscow Subregional 2010 Problem F. Finance 读题、枚举、讨论
读题、枚举、讨论队友说题目看不懂, 然后我也去看了一段时间, 然后明白了大致意思就开始写了大概就是 明年也是放4 weeks的假期, 然后每周的工资和 那个part的假期开始前最近的52week的工作周数有关, 就定义工作了52周, 那那个part每周的带薪假就是52比如样例是输入 2 3 20 21 ,然后输出明年的计划是 1 2 3 5这里显然是2个parts, 第一个假是3 weeks, 所以这之前的52周里放假4周所以工资为 3 * (52 -4)第二个假是1 weeks 在第五周,原创 2016-08-09 00:54:09 · 1030 阅读 · 2 评论 -
Codeforces Good Bye 2017 B. New Year and Buggy Bot 枚举全排列、模拟
题意:给出一张地图,有一个出口和入口,以及一些障碍和通道。然后给出一个操作序列0123,分别表示上下左右,求有多少种对应的可能可以使得按照该指令序列从入口走到出口。0->下,1->左,2->上,3->右为一种可能,以此类推。枚举全排列、模拟我们规定长度为4的序列op,op0表示上,op1表示下,op2表示左,op3表示右。所以只要枚举0123的全排列即可得到所以的对应可能,然后用每一个排列去模拟的跑一遍地图即可判断该情况是否可行。/*//枚举全排列代码原创 2018-01-14 16:08:33 · 528 阅读 · 0 评论 -
Codeforces Round #444 (Div. 2) C. Solution for Cube 枚举、模拟、魔方
题意:给出一个2*2*2的魔方的一个状态,问能不能转一下使得魔方满足每个面只有同一种颜色(1<= ai <= 6)。枚举、模拟、魔方根据题意只有2个面已经是同一种颜色,另外4个面每个面2种颜色,才可能可行可能可行。每个面按以下方式编号, 14 2 5 6 3则根据相同的面是1与3或者2与6或者4与5进行讨论。然后对于每种情况讨论转的方向(顺时针或者逆时针),耐心的慢慢写,慢慢模拟就行。详情请见代码。原创 2018-01-14 12:35:33 · 514 阅读 · 0 评论 -
Codeforces Round #444 (Div. 2) B. Cubes for Masha 暴力、枚举
题意:有n(1<= n <= 3)个骰子(每面标着数字0~9),要求找出最大的数x,满足1~x之间所有的数都可以用这最多n个骰子的正面表示出来。不能旋转,即不能用9表示6,反正亦然,且不要求所有的骰子都用上)。暴力、枚举首先用一个标记数组f,先全标记为false,之后把出现过的数都标记为true。当n == 1的时候,只有枚举每一面,并标记即可。当n == 2的时候,要枚举只用到1个骰子的情况和要用到2个骰子的情况,同时手动枚举全排列。当n == 3的时候,要枚举只用到1个或者2个骰子的情况和要用原创 2018-01-14 10:51:09 · 537 阅读 · 0 评论 -
Gym - 101173J Jazz Journey 图论、枚举贪心、Interesting
题意:给出一个图,要求把图上的所有边按照给出的顺序跑一遍,求最小代价。其中有单向边u->v、v->u, 和方程u->v->u、v->u->v,对于u->v->u必须先走u->v再走v->u但中间可以断开,且可以只走第一步u->v,对于v->u->v同理。图论、枚举贪心、Interesting首先由于对于u->v->u这样可以中间断开,即u->v, v -> x, x - y, y -> v, v->u,所以可以直接把一对(u,v)构成的2种单向边按顺序提取出来,map<pair<int, int>, v原创 2017-07-21 01:16:21 · 1640 阅读 · 0 评论 -
计蒜之道 2017 程序设计大赛 - 计蒜客 复赛 B Windows 画图 几何、平面、枚举
题意:在一个m*m(1≤n≤80000,1≤m≤250)的平面内给出n条线段,然后给出q(1≤q≤62500)个询问,为点x,y最近被2条线段所经过,如果没有则输出0。几何、平面、枚举这里 8e4 * 250 == 2e7,刚好可以预处理出mp[x][y]表示最后一次经过的线段。然后注意下精度问题即可,可能是向上修复精度,也可能是向下修复精度。y = -1;if(fabs(k*(j-xa) + ya*1.0 - double(int(k*(j-xa) + ya*1.0))) < EPS) y =原创 2017-06-11 18:27:32 · 912 阅读 · 0 评论 -
Codeforces Round #408 (Div. 2) C. Bank Hacking 无根树、贪心、枚举
题意:有一棵无根树,上面每个节点都有一个权值,可以任意选择一个节点删除,但这是和它相邻的节点即隔一个点间接相邻的点 的权值都会增加1,求把所有的点都依次删除,中途会遇到的最大权值点的 最小权值。无根树、贪心、枚举其实选定一个根时,根的权值是本身val[i],根的子节点的权值是val[i]+1,其它节点的权值是 val[i]+2,这个时候只要枚举根和这个根的直接子节点,即可求出答案。其中取出的这些节点放在priority_queue1里剩余的其它节点放在priority——queue2里,这样就可以快原创 2017-04-13 19:36:27 · 1121 阅读 · 0 评论 -
Codeforces Round #394 (Div. 2) C. Dasha and Password 贪心+预处理+枚举
题意:长度为n的密码必须包含至少一个字母一个数字一个非字母非数字的字符,给出n个长度为m的字符串,每个串取一个字符,要求移动最少的步数使所成的密码为合法的密码。贪心+预处理+枚举先贪心的预处理出每个字符串 v[i]的v[i].c表示移动到字母的最少步数,v[i].d表示移动到数字的最少步数,v[i].f表示移动到其它字符的最少步数。先把.c.d.f都初始化为INF,然后扫一遍字符串,如果不存在相应的请求则值依然是INF。因为n <= 50 所以显然是n^3的枚举,即枚举每一个.c.d.f要求它们来自原创 2017-02-01 12:19:59 · 864 阅读 · 0 评论 -
Good Bye 2016 D. New Year and Fireworks dp+枚举、状态总数
题意:烟花刚开始时占用一个格子的空间,然后开始移动经过ti秒(每秒移动一个格子),开始分裂,分裂成2半,分别向2边偏移了45度,然后运动ti秒,总共n个ti,问在这个二维平面里共有多少个格子有烟花经过过了。dp+枚举由于n <= 30,ti <= 5故向各个方向最多运行150个单位,故烟花只出现在一个300*300的平面内,故定义状态dpijk,表示在ij点是否在上一秒有k方向上的烟花对于每个ti每一秒跑一遍ijk,把状态转移到newdpxyk里,然后把newdpijk 拷贝到dpijk里,并维原创 2017-01-14 00:52:05 · 997 阅读 · 0 评论 -
Moscow Subregional 2010 Problem K. KMC Attacks 交互题、队列优化、枚举
交互题 队列优化用 lCur 和 uCur记录 机器的运行路径, 然后枚举起点就好其中WA5, 后来发现要记录最大的和最小的 lCur, uCur, 以为可能中间过程越界然后就开始TLE了尴尬后来才想到队列优化因为本来是一个vis[][]布尔数组来记录有没有枚举过那个起点, 但每次要forfor枚举然后用vis[][]判断, 这样可能是 4*1e4步内的化, 可能要接近 4*1e4 * (200 * 200) == 4* 1e8了显然还是超时的 所以队列优化可以 O(n^4)的复杂度降低到 O(原创 2016-08-10 00:16:20 · 1133 阅读 · 2 评论 -
Codeforces Good Bye 2017 C. New Year and Curling 几何、枚举
题意:有n个半径为r的圆盘,从第1个到第n个圆盘,依次从y = 10^100的位置向y = 0直线运动,当到达y = 0时,或者碰到之前停止运动的圆盘则停止。这里相切也作为碰到。求每个圆盘最终所在位置的圆心坐标。几何、枚举对于考虑圆i时,扫一遍j = 1~i-1所以圆心所在的位置,dabs = abs(x[i] - x[j]);如果它们的差dabs > 2*r 则它们不可能碰撞。否则ans[i] = max(ans[i], sqrt(4*r*r - dabs*dabs) + ans[j]);//ans原创 2018-01-14 19:11:38 · 517 阅读 · 0 评论