摘要:
按照t2从小到大排列之后贪心。 若当前任务可以插入,则插入。 若当前任务不可以插入,分两种情况: ①当前任务的耗时大于等于之前插入的任务的最大耗时:跳过当前任务 ②当前任务的耗时小于之前插入的任务的耗时:将最前插入的耗时最大的那个任务删除,插入当前任务 用堆维护 #include<algorithm 阅读全文
摘要:
首先使用DP预处理,先求出,在不考虑每种硬币个数的限制的情况下,每个钱数有多少种拼凑方案。 为了避免重复的方案被转移,所以我们以硬币种类为第一层循环,这样阶段性的增加硬币。 一定要注意这个第一层循环要是硬币种类,并且初始 f[0] = 1。 之后对于每个询问 (A1, A2, A3, A4, S) 阅读全文
摘要:
设F[i][j]表示在第i首歌曲结束后,音量能否刚好为j 转移:F[i][j]=F[i][j-C[i]] or F[i][j+C[i]] 初始化:F[0][beginlevel]=true 最后在所有F[N][j]中找到F[N][j]为true的且要让j尽量大。 如果所有0<=j<=maxlevel 阅读全文
摘要:
n=d*(u^2+v^2),枚举d(从1到sqrt(n)),然后判断n/d和d。再枚举一组u,v,如果gcd(u,v)=1,则是一组可行解。枚举八分之一圆,答案乘以8,再加上4个坐标轴上的点。 #include<algorithm> #include<iostream> #include<cstdl 阅读全文
摘要:
树状数组 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #include<queue> using namespace std; 阅读全文
摘要:
贪心 将双方的选手均按从强到弱排序,然后第一次扫描尽可能用当前剩下的选手中能赢对手当前最强选手中最弱的一个去赢得胜利,若无法做到,则暂时不考虑给对方最强的选手匹配对手。第二遍扫描使用同样策略去获取尽量多的平局。最后剩下的选手任意匹配就能获得最多的分数。 #include<algorithm> #in 阅读全文
摘要:
题意:就是说一开始一个序列是空的,然后每次可以将连续的一段染成同一颜色,问多少次才能到目标状态。 一开始想的是二分,然后题解DP。。。 f[i][j]表示区间[i,j]需要染色多少次 首先初始状态是f[i][i]=1和f[i][i+1]=str[i]==str[i+1] 然后从短区间地推到长区间 对 阅读全文
摘要:
先打出nand表 0 nand 0=1 1 nand 1=0 0 nand 1=1 1 nand 0=1 容易发现(!a)=a nand a 然后(a&b)=!(a nand b) 然后(a|b)=!((!a)&(!b)) 然后(a^b)=(a|b)&(a nand b) 所以通过nand我们可以实 阅读全文
摘要:
首先可以知道,如果已知第一行和第一列的数,那么可以很容易的计算出其余的数。进一步的,如果笔算将每个数的表达式写出可以得出如下结论: 第i行的第j个数(i>1,j>1)只与(1,1),(i,1),(1,j)有关 更数学化地说,设输入矩阵为S,定义C如下: C(i,j)=0 i=1或j=1 S(i,j) 阅读全文
摘要:
首先枚举等待牌,再枚举对子牌。 然后1~n扫一遍,如果现在 s[i]不能被3整除,那么必须跟后两个数搭配几下变成能被3整除的。然后如果能被3整除,那么只要三个连续的一组可行,则三个相同的一组必定也可行。因为如果有一种方案是3个连续的而最小数又能被3整除,那这种就必须有3n组,3n组的话三个相同的为一 阅读全文