补题
菜得不行的sb
摸了
展开
-
Educational Codeforces Round 58 (Rated for Div. 2) F (单调dp)
http://codeforces.com/contest/1101/problem/F容易发现对于每种起点终点组合的种类数很少所以考虑对于不同组合的最优答案用dp[ i ][ j ][ k ] 记录对于一个起点 i 到终点 j 分成 k+ 1段其中的最大值对于每个车的最优答案就是 c * dp[ s ][ f ][ r ]假如分成k段的话 可以考虑枚举最后一段或者最前一段假如断点是p...原创 2019-01-12 15:53:24 · 205 阅读 · 0 评论 -
MemSQL Start[c]UP 3.0 - Round 1 E. Desk Disorder
一个点连一条边 考虑把这样的关系分成一块一块的假如自己连向自己 包括自己以及前面连到自己的都无法移动 假如连的是链(假设长度为x) 那么选一个地方为空有x种 假如是环那么只能不动或者所有一起动两种#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#incl原创 2017-09-20 20:21:21 · 263 阅读 · 0 评论 -
Codeforces Round #435 (Div. 2) D. Mahmoud and Ehab and the binary string
先改第一个位置的看看是1还是0 然后二分区间询问查找另一个数字的位置#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility>#inc原创 2017-09-20 14:44:07 · 223 阅读 · 0 评论 -
Codeforces Round #435 (Div. 2) C. Mahmoud and Ehab and the xor
首先无解的情况只有n=2,x= 0 ,因为不能有相同的数考虑n>1 构造出n个数满足所以异或起来等于1^1^2^2^3^3……^x 但是不能出现相同的数字数字的要求是<=1e6 但是数据给的都是1e5以下的数 所以可以找到第一个大于1e5的 num = 2^a 构造一个数为x^num^1^2^3^…… (需要注意不能变成0) 剩下的数为1 , 2 , 3 …… 还有num#include原创 2017-09-20 13:17:54 · 169 阅读 · 0 评论 -
CS Academy Round #50 D.Min Races
贪心 class比它高的肯定是取b尽量小的 class比它低的肯定是取b尽量大的对b倒序 扫一遍 每次插入新的a 假如有比它的大的a就删掉 用这个来代表一场比赛中的第一名 删掉就意味着这个是可以跟他安排在同一场比赛并且都能判定为winner#include <iostream>#include <algorithm>#include <sstream>#include <st原创 2017-09-28 11:17:18 · 212 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) D. Rooter's Song
确定任意两点x,0 y,0交叉点在x,y x,0去x,y需要时间为y另一个需要x 时间相等才能相碰 y + tx == x + ty 所以 x - tx == y - ty 此时这些note将会相碰这些相碰的note的规律如下 大概就是平移一下 模拟一下平移的操作#include <iostream>#include <algorithm>#include <sstream>原创 2017-09-02 22:48:33 · 230 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) E. Nikita and game
一条直径有两端 考虑把直径的端点分为两部分(被直径中点分开) 那么只要维护两端的直径端点就可以了当加入一个新点的时候检查是否更新了直径如果更新了直径那它就会成为直径一端的唯一一个点 然后看他是到左边的那些端点长还是到右边那些端点长 假如是左边那左边的点都是另一端的点 再检查一下到右边的点的距离有没有跟新直径一样的 将它加入另一端的集合如果没更新则检查最大距离是否与直径相同 相同则加原创 2017-09-01 00:27:14 · 579 阅读 · 0 评论 -
Manthan, Codefest 17 C. Helga Hufflepuff's Cup
树dp 三维状态 dp[i][j][k]表示 点i 的数字状态为j k为已经有的特殊颜色的个数变成一个背包#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#in原创 2017-09-25 12:12:41 · 198 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) D. Vitya and Strange Lesson
从高位到低位建一个01trie 每次对序列异或x 实际上只要把新的x异或上前面的所有x再找就可以了 假如原序列中没有x那就是0 有的话就找一遍 尽量往小的跑 满了的话就再往上#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstd原创 2017-08-30 12:11:56 · 204 阅读 · 0 评论 -
Codeforces Round #433 (Div. 1, based on Olympiad of Metropolises) C. Boredom
需要算所有跟查询矩形相交的矩形(两个点组成的) 只要把所有矩形的数量减去不相交的矩形就好了显然不相交的矩形是有在查询矩形的上、下、左、右的两个点组成 但是会有重复的部分即在左上左下右上右下的部分 所以再把答案加回这部分利用主席树查询[l,r]上[d,u]的数有多少个#include <iostream>#include <algorithm>#include <sstream>#incl原创 2017-09-07 20:13:12 · 319 阅读 · 0 评论 -
Educational Codeforces Round 29 E. Turn Off The TV
离散一下 然后检查每个点被覆盖多少次 然后再用一个数组来记录被覆盖情况的前缀和#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility原创 2017-09-23 22:02:42 · 290 阅读 · 0 评论 -
#21
2016 ACM/ICPC Asia Regional Qingdao OnlineA 水题 预处理一下 http://paste.ubuntu.com/25376051/B 预处理 注意输入可以很长http://paste.ubuntu.com/25376054/C AC自动机 注意不区分大小写http://paste.ubuntu.com/25376056/D 规律http://pas原创 2017-08-23 19:48:01 · 205 阅读 · 0 评论 -
CS Academy Round #43 A B C D
A 题意: 丢两个骰子最高概率得到的和#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility>#include <stack>原创 2017-08-28 00:50:11 · 302 阅读 · 0 评论 -
Educational Codeforces Round 27 G. Shortest Path Problem?
对每一个可以走成环的地方记录一个可以改变的费用想要异或的值最小那么一定是尽量跟小于等于自己的异或只需要保存这个环跟原来已记录的费用异或出的最小费用(为0表示无变化)代码学习了qls的(#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstd原创 2017-08-23 01:48:49 · 191 阅读 · 0 评论 -
#20
ACM ICPC 2014-2015, Northeastern European Regional ContestA 最优策略变偶数序号的行列http://paste.ubuntu.com/25368920/B 贪心 注意bi为0的情况http://paste.ubuntu.com/25369042/C D EF 模拟 hash的位置如果都为1则加入答案http://paste.ub原创 2017-08-22 19:26:52 · 197 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
假设可以暴力找k次,剩下的就是1999 - k次随机 找不到的概率就是1 - ((n - k)/n)^(1999 - k)用随机数询问 记录最靠近答案的 <= x的位置 然后暴力#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstd原创 2017-08-26 02:20:46 · 311 阅读 · 0 评论 -
#15
2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)A 找规律 开玩笑的 没有规律 暴力跑边找坐标http://paste.ubuntu.com/25312196/B 把输入的先倒过来 然后构造的时候检查如果是在插入u之后操作的那就是在u后面 递归构造http://paste.ubuntu.com/25312411/C原创 2017-08-14 21:10:49 · 331 阅读 · 0 评论 -
Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function
一开始有很多答案 f0,f1,f2,f3,f4…,fm - n这个我们预处理出来这里是没有绝对值的每次修改l,r 其实只修改了a的总和 假设修改了总值v 那么要求的最小的原式 = abs(v+fj)记录一下改变的总和然后二分一下找最接近的fj#include <iostream>#include <algorithm>#include <sstream>#include <string>原创 2017-09-20 21:44:13 · 503 阅读 · 0 评论 -
CS Academy Round #49 C.Max Substring
首先最大的次数一定是单个字母出现的最大次数记录一下每个字母的出现位置 然后检查以每个字母为首的情况检查是否能增加串的长度 即对于每个相同字母的后面第j位 检查这些字母是否相同 是的话则可以增长#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#includ原创 2017-09-21 09:16:57 · 301 阅读 · 0 评论 -
Educational Codeforces Round 49 (Rated for Div. 2) F - Session in BSU
一个人选一个点 也就是可以看成一条边要选一个点 那么就只要单独考虑一个个联通块就可以了一个点代表一个时间 假设这个联通块的点数<边数 就代表人数>可选时间数 不可行假如 点数 = 边数 也就是所有点都必须选 取最大值假如 点数>边数 说明这是一棵树 丢掉最大值取次大#include <iostream>#include <algori...原创 2018-08-25 11:04:22 · 201 阅读 · 0 评论 -
Educational Codeforces Round 49 (Rated for Div. 2) E - Inverse Coloring
题意: 有一个n*n的方格需要染成黑白颜色 定义方格为beautiful的当且仅当每对相邻行的对应格子都相同或都不同,对列同理。 定义方格为suitable的当且仅当不存在大小&gt;=k的同色子矩阵首先考虑单独一行 可以通过dp算出长度为n的序列中最大连续同色长度为i的总方案那么再考虑列 因为方格是n*n的 所以行跟列考虑其实是一样的 选出了一行方案的再选列的方案就能确定涂完...原创 2018-08-23 22:38:16 · 158 阅读 · 0 评论 -
Caravan Robbers CF Gym - 100134C
https://cn.vjudge.net/problem/Gym-100134C http://codeforces.com/gym/100134/attachments答案就是最小的min(bi-aj)/(i-j+1) 用斜率优化 维护一个上凸壳 在上面三分答案插入的时候插入原点 算答案的时候再+1 当做当前点往右偏移了一个位置#include <iostream&g...原创 2018-07-29 02:54:13 · 282 阅读 · 0 评论 -
2018 SCAU暑假个人排位赛Ⅱ
A HDU - 4333 https://cn.vjudge.net/problem/30656/origin扩展Kmp 先翻倍原串s1得到s2 再用exkmp求s2的后缀跟s1的LCP 假如ex[i]&gt;=len说明相等 &lt; len则判断下一位的大小关系需要注意判断循环节 假如是有循环节的那么需要整体除掉循环次数#include &lt;iostream&gt...原创 2018-07-13 01:44:03 · 205 阅读 · 0 评论 -
2018 SCAU暑假个人排位赛Ⅰ
A HDU - 4324 https://cn.vjudge.net/problem/30578/origin找一个有向三元环 因为是一个竞赛图 所以三个点之间的关系只有两种 对于不合法的第一种可以通过一个点的入度计算出来 总共有C(n,3)个关系 那么剩下的关系就是三元环的关系 char s[maxm][maxm];int inp[maxm];int main() {...原创 2018-07-11 01:12:48 · 241 阅读 · 0 评论 -
2018SCAU校赛题解
出题组说难度顺序是ABIC EH FG D 不过这里还是按照题目顺序 如果遇见不懂的神秘词汇(例如尺取) 请百度“acm 尺取” 代码我会只留必要的定义并且尽量减短长度AUnsolved Problem Description Ly is participating in a programming game!The programming game includes n ...原创 2018-04-19 13:12:05 · 1242 阅读 · 0 评论 -
Best Position UVALive - 6808
枚举 + bitset用bitset记录GL的情况 然后直接枚举每个位置为左上角时候的答案char s[maxm][maxm];char s2[maxm][maxm];int main() {#ifdef LOCAL freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout);#endif // L原创 2018-04-08 18:23:00 · 164 阅读 · 0 评论 -
Codeforces Good Bye 2017 D. New Year and Arbitrary Arrangement
首先考 虑dp [i] [j] 表示 i 个a j个子序列ab 时候执行算法的期望那么转移就是dp[i][j] = ( pa * dp [i+1][j] + pb * dp[i][i+j] ) / (pa + pb)因为长度可以任意长所以首先考虑初始化的位置可以发现当a的个数为k的时候再添加一次b就结束算法了 所以考虑初始化dp[k][x]PA = pa/(pa+pb) , PB = pb/(pa原创 2017-12-30 12:05:00 · 325 阅读 · 0 评论 -
Codeforces Round #344 (Div. 2) D. Messenger CF631D
好久没写KMP 根本想不到这种做法首先先对连续相同的合并一下假设s字符个数为1那么只要长度足够并且字符相同就合法假设s字符个数为2那么左右两边长度都够就可以 但是只有一个位置合法 不能左移或者右移假设s字符个数>=3 那么需要首尾两个长度足够 并且中间的全部相等才行 所以对自身getfail 然后再用t匹配 需要注意首尾的是需要判长度足够就行 所以需要改一下特判#include <ios原创 2017-10-15 10:51:03 · 485 阅读 · 0 评论 -
Pandaland HDU - 6005
枚举一下边 求边的两个点u,v的最短路 但是不能直接从u到v或者v到u 求出最短路再加上边的花费#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#includ原创 2017-10-23 10:31:11 · 228 阅读 · 0 评论 -
Engineer Assignment HDU - 6006
状压dp关键是直接对每个项目预处理完成需要的人选 还有就是位运算一定要加括号#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set>#include <utility>原创 2017-10-22 17:14:07 · 256 阅读 · 0 评论 -
Codeforces Round #441 (Div. 1, by Moscow Team Olympiad) C. National Property CF875C
其实就是检查第i 跟 i+1 序列是否合法 合法就不理它 如果不合法再变一下 最后再拓补检查一下构造出的解是否合法#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#include <map>#include <set原创 2017-10-20 21:07:59 · 295 阅读 · 0 评论 -
MemSQL Start[c]UP 3.0 - Round 2 and Codeforces Round #437 (Div. 1) B. Ordering Pizza
首先全买B 然后考虑能不能把部分替换A提升总价值那么肯定考虑替换ai>bi的 先排个序 对于多出的披萨块ai bi是无影响的额外加入一部分ai bi 为0的数据对于每一个人 要不然就是全部替换为A最优 要不然就是尽量不要替换 所以对每个人都用尽量替换多的A和尽量替换少的A更新一下 #include <iostream>#include <algorithm>#include <sstre原创 2017-10-01 20:54:22 · 436 阅读 · 0 评论 -
MemSQL Start[c]UP 3.0 - Round 2 and Codeforces Round #437 (Div. 1) D. Buy Low Sell High
假如用i->j (i < j) 表示在i天买j天卖 那么i->k + k->j (i < k < j ) 与 上面的费用是一样的 因此这个最优解可以On算出来用一个小顶堆表示之前可以选择购买的物品 假设之前最小的可以在今天卖例如 第2天的可以在第4天卖赚到差价 当遍历到第5天时发现可以以第四天的价格买入赚到差价 这时候就可以把第2天和第4天的都拿来卖而第2天买入第5天卖的价值就等于原先第原创 2017-10-01 20:16:09 · 421 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) F. Cities Excursions
先对每个点dfs一次标记以点i为起点可以到达的点 然后用类似floyd的方法对每个i->j找出i能到的最小的点o并且o有路径能到达j 将o作为i->j的路径的第一个点 然后在这个图上进行倍增 假设有环那么倍增会一直绕着环跑 这种情况判断一下边界就可以了#include <iostream>#include <algorithm>#include <sstream>#include <s原创 2017-09-30 01:34:15 · 231 阅读 · 0 评论 -
#19
2015 ACM-ICPC Asia Shenyang Regional ContestAB 剪枝一下 last记录上一个不是它子串的 因为假如i是它的子串那么i的子串一定也是这个的子串http://paste.ubuntu.com/25362150/CD 取gcd 能选的个数就是n/gcdEF 容斥 枚举ai跟m的gcd 那么能走的就是m/gcdhttp://paste.ubuntu原创 2017-08-21 19:30:26 · 200 阅读 · 0 评论 -
#22
A 上到下一定会有边界存在 直接扫一遍http://paste.ubuntu.com/25382615/ B 二进制问题 不足2^k的时候多余的部分用k-1位表示 可以观察到这一部分的性质是直接加2队友的代码: http://paste.ubuntu.com/25382619/C DE 并查集 连起来然后把存在的dna记下来队友的代码: http://paste.ubuntu.原创 2017-08-24 20:28:08 · 181 阅读 · 0 评论 -
咖啡好喝#3
2016 Central Europe Regional ContestA 搜索出每个矩阵处理成字符串形式 如果没有记录过则记录下四个方向的形式B C 假设端点为三角形 处理出它到中间第一个正方形或圆形的距离 然后剩余加上剩余区间长度 (如果全是三角形就是加n-1) 底边是n-1 两边长度处理一下两个端点的形状D E F 考虑把两个状态全部拆开来的总操作 但是有一些是根本不用原创 2017-08-02 22:07:58 · 254 阅读 · 0 评论 -
#16
The 2014 ACM-ICPC Asia Taichung Regional ContestA 模拟 http://paste.ubuntu.com/25324981/B MSTC D 树形dp g为黑 f为白http://paste.ubuntu.com/25325654/E 几何模版题F G H I 二分图匹配 最大匹配数=最小点覆盖 http://paste.ub原创 2017-08-16 18:33:42 · 154 阅读 · 0 评论 -
乌龟狂欢#8
A 要求的是每个点各自在一个环中 把问题转化成让所有点的出入度都为1 网络流建模 把点i拆成i和i+n 源点连向前者 后者连向汇点 容量为1花费为0 连边将u连向v+n 容量为1 花费为w原创 2017-07-24 18:09:38 · 200 阅读 · 0 评论 -
放弃治疗#10
2016-2017 ACM-ICPC Asia-Bangkok Regional ContestAB 容斥+组合数 教练我推不出啊C D E FG 矩阵快速幂 求fib[k]+fib[2k]+.. 放弃治疗了 休息再说吧 不过我构造了一个矩阵 记一下 H 显然是个状压dp? 但是我要睡了 等一个总结日I 对rt和x求LCA 然后分类讨论一下就好了 http:/原创 2017-08-08 19:19:24 · 229 阅读 · 0 评论