CodeForces Good Bye 2016】的更多相关文章

codeforces Good bye 2016 E 线段树维护dp区间合并 题目大意:给你一个字符串,范围为‘0’~'9',定义一个ugly的串,即串中的子串不能有2016,但是一定要有2017,问,最少删除多少个字符,使得串中符合ugly串? 思路:定义dp(i, j),其中i=5,j=5,因为只需要删除2016当中其中一个即可,所以一共所需要删除的字符和需要的字符为20176,因此i和j只要5就够了. 然后转移就是dp(i,i) = 0, 如果说区间大小为1的话,那么如果是2017中的一个…
好久没有fst题了...比赛先A了前4题然后发现room里有人已经X完题了没办法只能去打E题,结果差一点点打完...然后C题fst掉了结果就掉rating 了...下面放题解 ### [A. New Year and Hurry](http://codeforces.com/problemset/problem/750/A) 题目大意:给定n道题和时间t,每完成第i道题需花$5*i$ 分钟,求在$240-t$分钟内完成的最大题数. 直接模拟,求完成i道题所花时间$t_i+t\leq 240$ 的…
传送门 题意: 给出一个长度为\(n\)的串,现在有\(q\)个询问,每个询问是一个区间\([l,r]\),要回答在区间\([l,r]\)中,最少需要删多少个数,满足区间中包含\(2017\)的子序列而不包含\(2016\)的子序列. 思路: 先不考虑多个询问,那么这个问题区间\(dp\)可以解决,状态定义中要附加状态转移的代价. 比如当前数字为\(7\),那么显然从状态\(201\)转移过来需要\(0\)的花费:但如果不要\(7\),那么从状态\(201\)到状态\(201\)则需要\(1\)…
给出烟花的爆炸方式和爆炸次数 问最后有多少个格子会被炸到 如果dfs的话会超时... 利用模拟每一层来搜索..? 思想就是一开始有一个爆炸点向上 然后模拟完第一段 会产生一个爆炸点 朝两个方向 就用vector来存 每一层都处理一段的爆炸点 产生新一段的爆炸点 因为5*30=150 所以图建300就可以了 300 * 300 * 30的时间复杂度 但是常数很大..不过无所谓啦.. 需要注意的是 一个爆炸点可能会同时出现两次朝同一个方向开始爆炸的烟花 这个是没有意义的 所以拿一个数组来记录 不然最…
A题,水题略过. B题,也水,但是想复杂了.只要运动超出[0,20000]的范围就算不可能了. C题,我自己的方法是解不等式,然后取最大的答案即可.代码如下: #include <stdio.h> #include <algorithm> #include <string.h> #include <iostream> #include <string> #include <map> #include <vector> us…
A. New Year and Days 题目连接: http://www.codeforces.com/contest/611/problem/A Description Today is Wednesday, the third day of the week. What's more interesting is that tomorrow is the last day of the year 2015. Limak is a little polar bear. He enjoyed…
Good Bye 2018! 题目链接:https://codeforces.com/contest/1091 A. New Year and the Christmas Ornament 题意: 给出三堆数量分别为y,b,r的东西,现在要你从三堆中各选一堆,满足y'+1=b'且b'+1=r' (y',r',b'分别是指从中选取的个数). 现在问最多能拿出的个数为多少. 题解: 我是直接模拟的= =但是有更简单的方法. 让y+=2,b+=1,那么现在的最优解为min(y,b,r)*3-3.这个还…
题目链接:http://codeforces.com/contest/750/problem/D 题意:新年烟花爆炸后会往两端45°差分裂.分裂完后变成2部分,之后这2部分继续按这种规则分裂.现在给你每一步分裂的个数.有可能几个部分都是分裂到一个位置,这种情况只算一个.问最后分裂完有多少个. 思路:模拟即可.由于n最多30,每次最多分裂5个.所以总体规模不是很大.但是需要记忆化一下防止TLE.G[][]表示被覆盖的格子.vis[k][i][j][d]表示第k次分裂在位置(i,j)方向为d时是否出…
题目链接:http://codeforces.com/contest/750/problem/C 题意:在CF中,每个人都有个Rank值. 当Rank>=1900时,为DIV1.Rank<1900时,为DIV2.现在给你参加每一场的DIV值和参加完这一层后的Rank值变化.问最大可能的初始Rank值.如果答案无限大输出Infinity,如果不可能出现输入的情况输出impossible.其他情况输出可能的最大答案. 思路:二分初始Rank值,然后在二分出来的初始Rank值在计算过程中发现分值在D…
题目链接:http://codeforces.com/contest/750/problem/B 题意:地球的子午线长度为40000,两极点的距离为20000.现在你从北极出发,按照题目输入方式来走.有规定在北极时只能往南方向走,同理在南极.最后走完后要回到北极.问输入的路线是否合法. 思路:按照题意模拟就好了.定义Point为离北极的距离,初始Point为0,因为起点在北极. 当这次行动为w/e时如果Point为0/20000(在极点)时路线不合法. 当这次行动为n时,如果Point为2000…