当前搜索:
一直想(bei)写(lao)博(shi)客(cui),可总因种(lan)种(ai)原(wan)因(qi)未能成文
今天这篇,就算做开始吧……
Day0
最后一天还要考试,差评!
教练请所有学生吃了顿饭,想着有些同学就要退出oi了,还是有一点悲伤的。
晚上想起了学长的忠告:考前千万不要打板!!!于是早早就睡了。
Day1
早早来到神大,被学长qizy强奶一口:“听wuvin说你遇到简单题就会爆炸。”emmmm……,心情复杂不...
给定两个字符串s1,s2,按如下方式构造一个串s:每次从s1或s2的头部取一个字符放到s的末尾,求所有可能的s中最大的最长回文子串的长度(好吧题意有点绕)
考虑dp,f[i][j][k][l]f[i][j][k][l]表示s的前半部分选了i−1i-1个来自s1的字符,j−1j-1个来自s2的字符...
给定一个序列aia_i,求区间长度在ll到rr之间的所有区间平均数的最大值
二分答案,之后将序列中每一个数减去二分的平均数,原题转换为是否存在一个区间,长度在ll到rr之间,且区间和大于0
求新的序列的前缀和,记为bib_i 则对于每一个bib_i,我们要判断在bj(i−r≤j≤i−l)b_j...
给定n个区间,求最多取多少区间使这些区间无交集
贪心:取能塞下区间中结束时间最早的即可
证明什么的,算法导论上找#include<bits/stdc++.h>
#define FE "arrange"
using namespace std;
inline in...
有一个纸带·,每次区间染色,同一个地方后染的颜色覆盖先染的,求最后纸带上颜色种类数。
咦,这不是线段树吗?
咦,倒过来做好像很方便啊?
咦,离散化有坑?
区间涂色,若该颜色所在区间均被染色,则该颜色按原顺序操作后会被后面的颜色覆盖
注意离散化
本来三个颜色3-8,2-5,7-9,最后6...
题目链接
BZOJ2143
orz题解
我们引入云端的概念
建立一个包含n∗m∗(n+m−2)n*m*(n+m-2) 个点的分层图 G[1⋯n][1⋯m][1⋯n+m−2]G[1\cdots n][1\cdots m][1\cdots n+m-2]
其中G[n][m][0]G[n][m]...
没什么好说的,矩阵前缀和裸题
代码#include<bits/stdc++.h>
using namespace std;
inline int getint(){
int x=0,p=1;
char c=getchar();
while(!isdigit(c...
题意:(说不清)
一道证明复杂度题
这样是O(mm−−√log2n)O(m\sqrt m log_2n) 的
自己看吧~#include<bits/stdc++.h>
#define LEN 300000
using namespace std;
inline int getin...
nn个物品,每个物品权值为ai(1≤i≤n)a_i(1\leq i\leq n),两人按给定顺序轮流拿物品,先手先拿11或22个物品。然后若上一个人拿了kk个物品,这一个人必须拿kk或k+1k+1个物品,若剩余物品不足k个,游戏结束。
两个人都尽可能使自己拿的权值比别人大,游戏结束后,先手拿的权...
给定nn个人的能力值ai(1≤i≤n){a_i}{(1\leq i\leq n)},每轮比赛任选两个人i,ji,j,若∣ai−aj∣>k\mid a_i-a_j\mid>k,则能力值大的人获胜,否则,两人均有可能获胜。每轮比赛完后,失败方淘汰。n−1n-1轮比赛完后,剩下的人获得总冠军...
一棵带权树,第一次经过一个节点需ti时间,获得wi的武力值
求T时间内获得的最大武力值
n,T≤300n,T\leq 300
树形dp神题(告诉了我什么叫转移顺序)
dp[i][j][0/1/2]dp[i][j][0/1/2]表示路径的 【起点终点都在i/起点(或终点)在i,另一点在i的子...
最小生成树+最短路裸题?
二分+最短路裸题?
还是归为卡常题吧
别看了,没卡过去#include<bits/stdc++.h>
#define LEN 2000000
#define INF 1000000000000000000
using namespace std;
inl...
题意——我不知道,我不知道,我不知道
反正判判就行了
怎么判?不知道不知道不知道……#include<bits/stdc++.h>
using namespace std;
inline int getint(){
int x=0,p=1;
char c=getch...
求满足方程ax≡xa(mod2n)a^x\equiv x^a\pmod{2^n} 的解的个数
n≤30,a≤109n\leq 30,a\leq 10^9
询问组数T≤1000T\leq1000
引理一:若a,b均为奇数,且a2k+1≡b2k+1(mod2n)a^{2k+1}\equiv b^...
求从1-n中选k个数,使得这k个数的乘积不含完全平方因子
70% n≤30\ \ \ n\leq30
100% n≤500\ \ \ n\leq50070%:状压dp,f[i][j][k]表示前i个数,选了j个,当前所选数之积分解质因数后的状态为k(k表示成二进制后,第一位表示...
poj3177弱化版
双连通分量缩点,答案为(叶子节点+1)/2
(还不带重边,实在没什么好说的了)#include<bits/stdc++.h>
#define LEN 1000006
using namespace std;
inline int getint(){
i...
求用最小数量的边使得树上至少k个点被这些边覆盖
2≤k≤n≤1052\leq k\leq n\leq 10^5
显然,一条边覆盖两个点最好。
考虑最多能有多少边能覆盖两个点,用树形dp即可
复杂度O(n)O(n)#include<bits/stdc++.h>
#define L...
求树上离给定两点a,b一样远的点的个数
点数n≤105n\leq10^5,询问数m≤105m\leq10^5
首先,如果a=b,那么n个点都是答案
如果a≠\neqb,将从a到b的链提出来,易得链中点及其子树到a、b距离均相等
显然,我们不能暴力跳树高找中点,考虑倍增
注意当lca是链中...
求一个数是否为两个fibonacci数的乘积
数据组数T≤100\leq100,n≤1000,000,000\leq1000,000,000
好吧小于等于1e9的fibonacci数只有45个,暴力即可#include<bits/stdc++.h>
using namespace ...