摘要:
T1 我只能说 它是一个比较暴力的dp,需要人力讨论... 所以考试觉得讨论太麻烦,直接内心崩溃了....(好像这也是我考炸的原因吧) 教训:以后要勤快一些,代码能力 唉唉唉 #include <cstdio> #include <cstring> #include <cstdlib> #inclu 阅读全文
摘要:
这个题,我想的是用一些神奇的线段树做法,根本没想匹配 但是好像很显然啊 (论文写的也太长了...) 给的l,r范围很大,其实有用的只有n个时刻 那可以先离散一下 然后把 各个线段按照权值从大到小排序,一个一个选 有矛盾一定选择权值大的,所以前面选定的集合一定是最优的 然后自己论文里说的check函数 阅读全文
摘要:
三分+贪心检验 (注意check的时候,多用/法,不要炸long long) jyy可以生存的时间 与 买的次数 成一个上凸的单峰函数 证明: 如果买的太多,光小费就给不起 如果买的太少,又不能充分利用多种食物 所以可以三分 买的次数 贪心check: 先把保质期短而且又贵的食物去掉 然后剩下的食物 阅读全文
摘要:
T1 就是个签到题 第一个可以选m 第二个选m-1 第三个 m-2 之后都是m-2 特判n=1/2,m一开始就要mod,不然炸long long (就这么道不是题的题,我特么考试的时候竟然觉得他是 矩阵乘优化dp....,100分啊啊啊啊啊啊啊啊啊) #include <cstdio> #inclu 阅读全文
摘要:
直接暴力O(n^2)枚举 每一个圆盘和其后面落下的圆盘 i 当前枚举的圆 j i之后的圆 然后利用atan2函数求出(x[j]-x[i],y[j]-y[i])向量与x轴的夹角 再根据d(圆心之间距离)、r[i]、r[j]余弦定理求出向量可以向上下扩展的角度 用贪心线段覆盖... 枚举的时候有几种特殊 阅读全文
摘要:
T1 移项,然后离散,dp即可 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <ctime> #include <algorithm> #define mem(a,b) mem 阅读全文
摘要:
T1 网格 显然 n==m时,卡特兰数 n,m<=100时,滚动数组的dp 正解 ans=C(n+m,n)-C(n+m,n+1) 不会证,但是可以类比 cantelan数公式 C(2*n,n)-C(2*n,n-1) #pragma GCC optimize("O2") #include <cstdi 阅读全文