摘要:
题意:一个数塔,类似八数码的样子。。 思路:正解双向搜索。。时间复杂度非常科学。。不过数据弱ida*搞了过去。。。。(大力出奇迹?) 代码; 阅读全文
摘要:
题意:给你一个正则表达式(伪),唯一不同其中.*代表 不是 *个. 而是.先匹配再星思路:场上dp过了(瞎分类讨论不知道wa了多少次。。),试图用正则来着但是不会写。。。下来学习一下姿势。。首先regex这个c++11的库函数就不多说了,知道怎么构造正则和匹配就可以了... 阅读全文
摘要:
题意:一个树,点权,查询x到y路径上 价值在[a,b]之间的点的权值和思路:剖分模板题,首先要想到离线处理,第一步将查询分为query(x,y,0,b)-query(x,y,0,a);接下来我们就发现了可以按照点权的大小以及查询a的大小离线处理,这样就相当于只查询qu... 阅读全文
摘要:
题意:中文题,求小于等于n的"山谷"数的个数 思路:数位dp,注意此题中状态转移与前导0有关即可。 代码: 阅读全文
摘要:
题意:。。比较复杂,就是一个树有点权,一个点的答案是子树的所有点权的前缀和的和(贪心思想转换后的题意),问所有答案。首先这是个假题解。。只是提供一个思路。。。数据不强AC了。。。思路:标解是个启发式合并。。这里尝试另一种做法(因为不会),平均时间复杂度是nlogn^2... 阅读全文
摘要:
题意: n个串,每次查询两个,问最长的公共自串并且这个子串要是n个串其中一个的前缀。思路:正解是AC自动机。。。这里瞎搞了一下居然过了,直接二分答案,然后判断(类似hash求公共子串一样),就再加一个是不是前缀的判断就好。。时间复杂度理论上最差n*m*logn。。。但... 阅读全文
摘要:
题意: m个字母,组成两个长度为n的字符,其中一个字母不能同时出现在两个串中。问总方案? 思路:枚举m个中恰好有i个在第一个串,有j个在第二个串。。然后求个和。。具体其中n个空恰好k种颜色,可以用dp预处理。 dp[j][i]=((dp[j-1][i]*i)%mod+(dp[j-1][i-1]*i) 阅读全文
摘要:
题意:。。。题意有点毒啊 。。。"For those who do not have the patience to read the problem statements"。。。但是事实上上面那个式子是有用的。。。 n个数,每个数有属性,分别对应可以选择正负或都可以。然后让你选一个集合,sum== 阅读全文
摘要:
题意:思路:。。。。注意是可行流,在找增广路的时候条件要进行修改。。。。修改的地方看代码注释代码:#includeusing namespace std;#define MEM(a,b) memset(a,b,sizeof(a))#define bug puts("b... 阅读全文
摘要:
题意:1 n 选择不超过k个数,使得他们的乘积不包含完全平方因子。 思路:考虑有相同因子的数不能同时选择,自然想到了分组,并且要加上一个维度K(来限制当前选了几个数字),但事实上一个数又可以属于很多组。。。 这里就可以使用状态压缩来压缩因子,{2,3,5,7,11,13,17,19},除去这些因子之 阅读全文