动态规划
文章平均质量分 82
zzuzxy
牛顿说:“我不知道世人怎样看我,但我自己以为我不过像一个在海边玩耍的孩子,不时为发现比寻常更为美丽的一块卵石或一片贝壳而沾沾自喜,至于展现在我面前的浩翰的真理海洋,却全然没有发现。”
展开
-
D. Destroy the Colony
文章目录D. Destroy the Colony题意:分析D. Destroy the Colony题意:给定一个长度为偶数的字符串,将字符串分成长度相等的两个字符串,要求同一种字符必须在同一个字符串里面,给出Q个查询,每次要去第x个字符和第y个字符必须在同一组内分析可以明显看出这是一个背包问题,背包的容量是n/2,先不考虑指定的字符,那么总共有多少种方法?(n/2)!2∗dp[52...原创 2019-03-18 12:23:54 · 270 阅读 · 0 评论 -
2050 Programming Competition
相似题目推荐洛谷P1156dp[i][j] 代表前i个挑战,选择了j个,最大的体力值是多少#include <bits/stdc++.h>#define mem(ar,num) memset(ar,num,sizeof(ar))#define me(ar) memset(ar,0,sizeof(ar))#define lowbit(x) (x&(-x))#defi...原创 2019-04-17 20:25:17 · 166 阅读 · 0 评论 -
D. Match Stick Game
文章目录D. Match Stick Game分析D. Match Stick Game分析赛中也不会做,赛后别人说是dp,也思考了好一会儿,本来以为代码会比较难码,结果一发就过了#include <bits/stdc++.h>#define mem(ar,num) memset(ar,num,sizeof(ar))#define me(ar) memset(ar,0,s...原创 2019-04-22 19:48:48 · 374 阅读 · 0 评论 -
2019 icpc nanchagn invitation 题解
文章目录D. Match Stick GameI. Max answerJ Distance on the treeE card GameD. Match Stick Gamehttps://blog.csdn.net/weixin_38686780/article/details/89459343I. Max answerhttps://blog.csdn.net/weixin_3868...原创 2019-04-22 20:00:23 · 231 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2)
文章目录A Maxim and BiologyB Dima and a Bad XORC Problem for NazarD - Stas and the Queue at the BuffetE - Number of ComponentsF - Sonya and Informatics这次打的不错,除了B少了break fst了,其他还好,分享一下我的做法Codeforces Roun...原创 2019-04-19 13:13:46 · 793 阅读 · 5 评论 -
bitset在算法竞赛中的应用
文章目录bitset 使用 - 为了更块的暴力1 bitset库2 bitset 用法集合求交并的计数运算bitset 使用 - 为了更块的暴力1 bitset库bitset的基本操作2 bitset 用法集合求交并的计数运算可达性统计1 ASC28J题意:给定一个有向图的邻接矩阵,求有多少个,三元环,即A−>B−>C−>AA-&g...原创 2019-04-18 14:15:38 · 1275 阅读 · 0 评论 -
Codeforces Round #556
文章目录A Stock ArbitragingB Tiling Challenge1A&C Prefix Sum Primes1B&D - Three Religionsdiv1 E Election PromisesA Stock Arbitraging暴力B Tiling Challenge暴力1A&C Prefix Sum Primes先放2,再放...原创 2019-04-30 16:22:01 · 255 阅读 · 0 评论 -
牛客练习赛49 B 筱玛爱阅读 子集 生成,动态规划
B 筱玛爱阅读题目地址题意:给定n个物品,m个方案,第i个方案包含kik_iki个物品,现在共有n个价格,但不确定每一个物品属于哪一个价格。问买下所有物品需要的最小价格。分析:简化问题,加入价格固定,就是一个状压dp,如果暴力递推,那么复杂度O(2n∗m)=O(4n)O(2^n*m) = O(4^n)O(2n∗m)=O(4n),不可接受,考虑采用枚举子集的方式复杂度O(3n)O(3^n...原创 2019-07-06 22:32:25 · 280 阅读 · 0 评论 -
Educational Codeforces Round 69 E Culture Code
文章目录E Culture Code题意:分析:参考代码E Culture Code题意:给定n个布偶,每一个布偶有内部空间in[i]in[i]in[i],外部体积out[i]out[i]out[i],如果 in[i]>=out[j]in[i] >= out[j]in[i]>=out[j],我们就可以将j套入到i里面,定义一个最打集合嵌套是使得没有再...原创 2019-07-24 10:41:37 · 376 阅读 · 0 评论 -
2019杭电多校第一场
文章目录ABlank题意:分析:参考代码ABlank题意:求长度为n,n≤100n,n \leq 100n,n≤100,满足[l,r][l,r][l,r] 中有xxx个不同元素的数组的个数 (1≤x≤4)(1\leq x\leq4)(1≤x≤4)分析:注意到数组的范围很小,容易联想到dp来做,关键是怎么确定状态呢?考虑到计数问题填每一个位置的方案数以及题目[l,r][l,r][l,r]...原创 2019-07-31 23:21:20 · 217 阅读 · 0 评论 -
1006 &6685Rikka with Coin
文章目录Rikka with CoinRikka with Coin#include <bits/stdc++.h>#define mem(ar,num) memset(ar,num,sizeof(ar))#define me(ar) memset(ar,0,sizeof(ar))#define lowbit(x) (x&(-x))#define Pb push_b...原创 2019-08-20 00:09:05 · 127 阅读 · 0 评论 -
AtCoder Beginner Contest136EF,137EF,138 F
文章目录Atcoderatcdoer 138FAtcoderatcdoer 138F题意:求满足y%x=y xor x,A≤x≤y≤By\%x =y\ xor\ x,A\leq x\leq y \leq By%x=y xor x,A≤x≤y≤B 的 (x,y)(x,y)(x,y)的数量分析:分析如果x,yx,yx,y的最高位不同,那么 y⊕x&...原创 2019-08-22 10:33:45 · 573 阅读 · 0 评论 -
AtCoder 134F
AtCoder 134F//#include <bits/stdc++.h>using namespace std;const int mod = 1e9 + 7;int dp[50+1][50+1][2500+10];// dp[i][j][k] 已经匹配到前i个,有j个没有匹配,当前已知的value是kvoid Add(int &a,int b){ a +=...原创 2019-08-27 20:00:32 · 265 阅读 · 0 评论 -
F - Bits And Pieces
F - Bits And Pieces题意:给定序列A,求max(ai&(aj∣ak))1≤i<j<k≤nmax(a_i \&(a_j|a_k))1\leq i < j <k \leq nmax(ai&(aj∣ak))1≤i<j<k≤n...原创 2019-08-27 20:56:47 · 773 阅读 · 5 评论 -
SOS DP
SOSdp (sum of subsets dynamic programming)转载 2019-08-27 22:30:32 · 9090 阅读 · 12 评论 -
D. Flood Fill &&F. Clear the String
文章目录Codeforces Round #538 (Div. 2)D. Flood Fill GAEducational Codeforces Round 61 (Rated for Div. 2)F - Clear the StringCodeforces Round #538 (Div. 2)D. Flood Fill GAEducational Codeforces Round...原创 2019-03-20 22:39:08 · 214 阅读 · 0 评论 -
树形dp
文章目录树形dp没有上司的舞会树形dp给定一个N个节点的树(无根树或者有根树),我们可以选择一个节点为根进行dfs求得树的结构,作状态转移就由深到浅,由叶子节点向根进行dp没有上司的舞会1代表取当前的,0代表不取当前节点dp[fa][0]+=max(dp[son][1],dp[son][0]);dp[fa][0] += max(dp[son][1],dp[son][0]);dp[fa][...原创 2019-03-19 21:48:17 · 143 阅读 · 0 评论 -
Wannafly挑战赛28 C msc的宠物
文章目录Wannafly挑战赛28 msc的宠物题意:分析:状态:状态转移:参考代码Wannafly挑战赛28 msc的宠物题意:给定一棵树,树上每个节点有权值,要求删除最多k条边使得所有联通块的最大值和最小的差最大的最小分析:最小化最大值,很明显是二分最大的差值D了转化一下题目其实就是将树上的节点分成k个联通块,使得所有联通块的最大值和最小的差最大的最小。状态:f[x] 表示至...原创 2018-11-17 11:46:41 · 194 阅读 · 0 评论 -
动态规划LCIS
2000:最长公共子上升序列总Time Limit: 10000ms Memory Limit: 65536kBDescription 给定两个整数序列,写一个程序求它们的最长上升公共子序列。 当以下条件满足的时候,我们将长度为N的序列S1 , S2 , … , SN 称为长度为M的序列A1 , A2 , … , AM 的上升子序列:存在 1 <= i1 <原创 2017-07-16 22:31:46 · 283 阅读 · 0 评论 -
动态规划最大子矩阵
小结 一个重载的运算符必须是类的成员或者至少拥有一个类类型的运算对象,重载运算符的运算对象数量,结合律,优先级和对应的内置类型完全一致. 当运算符被定义为类的成员时,类的this指针被隐式的绑定到第一个对象.赋值,下标,函数调用,箭头运算符必须定义为类的成员,如果类重载了函数调用运算符(),则该类的对象被称为函数对象,这样的对象通常用在标准函数中,lambda表达式是一种简便的定义函数对象类的形式原创 2017-07-16 13:00:03 · 239 阅读 · 0 评论 -
Card Hand Sorting ,排列,状态压缩
Card Hand Sorting Kattis - cardhand题意将n张扑克牌排序,排序规则,不同花色之间的顺序没有要求,同意花色之间必须升序或者降序,问使得整个扑克牌排好序最少需要移动多少次分析知识点组合数学,状态压缩,最长上升子序列 花色之间的排序 4!4!4! 升序或者降序 2424 2^4 共有t=4!∗24t=4!∗24t = 4!*2^4 ...原创 2017-10-04 11:08:10 · 486 阅读 · 0 评论 -
Wannafly挑战赛10
B 小H和密码链接:https://www.nowcoder.com/acm/contest/72/B 来源:牛客网题目描述 小H在击败怪兽后,被一个密码锁挡住了去路 密码锁由N个转盘组成,编号为1~N,每个转盘有M个位置,每个位置上要么有一个小写字母,要么没有任何字符。一个密码能被转盘表示出,当且仅当指定每个转盘上面的某一个位置,然后将这些位置按照所...原创 2018-02-24 22:01:01 · 359 阅读 · 0 评论 -
leetcode 801. Minimum Swaps To Make Sequences Increasing
class Solution { int f[1000+10][2];public: int minSwap(vector<int>& A, vector<int>& B) { memset(f,127,sizeof(f)); f[0][0] = 0; f[0][1] = 1; ...转载 2018-03-24 20:55:05 · 214 阅读 · 0 评论 -
ZOJ Problem Set - 4019 Schrödinger's Knapsack(2018浙江大学校赛)
Schrödinger’s Knapsack总结题意算法分析参考代码Schrödinger’s Knapsack总结坑点:大水题,大水题,我是个大菜逼,TLE 了好几发,发现他这个条件给的用memset太不划算了,还不如for循环,就因为这个卡了好几发,真鸡儿悲伤题意背包问题的变形,虽然跟背包相去甚远,但还是一个dp问题,给定一...原创 2018-04-08 21:09:35 · 380 阅读 · 0 评论 -
C. Dynamic Graph Matching
C. Dynamic Graph Matching题意 C. Dynamic Graph Matching题意给定一个 n 个点的无向图,m 次加边或者删边操作。 在每次操作后统计有多少个匹配包含 k = 1, 2, …,n/2 条边。 匹配的定义: 边的集合,没有共同的顶点 先把匹配的概念转换,n个边的匹配,就是n条边没有共同的顶点,那就是2...原创 2018-07-31 14:03:42 · 600 阅读 · 0 评论 -
树
树分治树的重心我们选取一个点,要求将其删去后,结点最多的树的结点个数最小,这个点被称为“树的重心”。POJ1644// Size[u] 代表以节点u为根的子树节点个数// dp[u] 代表去除u节点后最大子树的节点个数const int maxn = 2e4+100;vector&lt;int&gt; G[maxn];int dp[maxn];int Size[maxn];i...原创 2018-09-28 00:35:48 · 115 阅读 · 0 评论 -
牛可乐发红包脱单ACM赛$
牛可乐发红包脱单ACM赛$C 区区区间间间#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;#define mem(ar,num) memset(ar,num,sizeof(ar))#define me(ar) memset(ar,0,sizeof(ar))#define lowbit(x) (x&amp;amp;amp;(-x))#define Pb push_back#defin原创 2018-11-01 22:23:56 · 112 阅读 · 0 评论 -
bzoj4033[HAOI2015] 树上染色 dp
文章目录bzoj 树上染色题意:分析:bzoj 树上染色题意:给定一棵n个点的树,把其中k个染成黑色,定义价值为黑色节点两两之间的距离和+白色节点两两之间的距离,求最大价值分析:树上dptypedef pair&lt;LL,LL&gt; P;LL N,K;const LL maxn = 2000+10;std::vector&lt;P&gt; G[maxn];LL size[m...原创 2018-11-15 22:01:31 · 222 阅读 · 0 评论 -
Nuts for nuts.. UVA - 10944状压dp
文章目录Nuts for nuts.. UVA - 10944题意:分析:参考代码Nuts for nuts… UVA - 10944题意:n*m的方格中,有一个起点和num个核桃,问把所有的核桃都取了,然后回到原地的最小步数,可以往八个方向移动分析:先把起点和核桃都从图中抠出来,然后两两之间的距离是Map[i][j]=max(x[i]−x[j],y[i]−y[j])Map[i][j] ...原创 2018-11-15 23:20:02 · 242 阅读 · 0 评论 -
(SWERC 2017)
文章目录2017-2018 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2017)训练 1AE Ingredients题意分析F Shattered Cake2017-2018 ACM-ICPC Southwestern European Regional Programming Contest (S...原创 2018-11-20 22:03:29 · 666 阅读 · 0 评论 -
hiho1143 && hiho 1151&&1033 骨牌覆盖 V2
文章目录hiho1143 &amp;&amp; hiho 1151&amp;&amp;1033 骨牌覆盖 V2骨牌覆盖问题问题描述分析:状态压缩参考代码hiho1143 &amp;&amp; hiho 1151&amp;&amp;1033 骨牌覆盖 V2骨牌覆盖问题问题描述在m∗nm*nm∗n的一个长方形方格中,用一个1*2的骨牌排满方格。问有多少种不同的排列方法。原创 2018-11-21 18:54:18 · 496 阅读 · 0 评论 -
SWERC D Candy Chain
文章目录D Candy Chain题意分析:参考代码D Candy Chain题意Margot 有一个 长度为字符串aaa,给定nnn个子串,每一个子串一个价值wiw_iwi,从原串中取出一个子串后,原串的左右结合组合成一个新的串,并且得到改子串的价值wiw_iwi。 问能取到的最大价值分析:clarisdp+ trie 树trie 树:先将这n个子串加到trie树中,并...原创 2018-11-22 14:01:04 · 363 阅读 · 0 评论 -
CCF201409-5拼图(状态压缩DP+矩阵快速幂) (骨牌覆盖问题拓展 )
文章目录拼图拼图题意:分析:搜索确定状态转移方程,快速幂加速运算LL NN,N,M;// 注意修改maxn 的值,要不然容易T// 注意maxn值过大,栈可能会不够const int maxn = 200;struct Matrix{ int n,m; Matrix(int nn = 1,int mm = 1):n(nn),m(mm){ memset(a,0,size...原创 2018-11-22 16:52:06 · 808 阅读 · 0 评论 -
4515: 又见背包
4515: 又见背包 描述 有n种大小不同的数字aiaia_i,每种mimim_i个,判断是否可以从这些数字中选出若干使它们的和恰好为k。 输入 输入包含多组数据。第一行为一个整数,代表数据组数,对于每组数据: 第一行输入n,k 第二行n个数,代表~. 第三行n个数,代表~. 输出 每组数据输出一行 满足条件能使得和恰好为k,输出”yes”. 否则输出...原创 2017-07-15 20:09:30 · 331 阅读 · 0 评论