摘要: 玄学剪支,正好复习一下搜索 感觉搜索题的套路就是先把整体框架打出来,然后再一步一步优化剪枝 1.从maxv到sumv/2枚举长度(想一想,为什么) 2. 开一个桶,从大到小开始枚举 3. 在搜索中,枚举到长度为x的木棍,则下一步也从x开始枚举 4. 如果当前... 阅读全文
posted @ 2018-08-25 14:37 EM-LGH 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 开始没看出来是贪心,一度以为是动态规划,还是太弱了呀….. 不难分析出,两个相同的飞行动作之间夹一个相同的动作是多余的,所以就贪心一下,按Ci从大到小排序,依次加到左右两端点,知道加不了为止。 代码:#include#includeusing namespa... 阅读全文
posted @ 2018-08-25 10:28 EM-LGH 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 不难分析出如果有解则每个蓄水厂所能覆盖到的干旱城市一定是连续的。否则,中间那些没被覆盖的部分永远都不能被覆盖到。 当然,每个蓄水厂所覆盖的城市有可能不连续,不过既然有解,则一定都是连续的。我们可以开一个mark数组来记录每个城市是否被覆盖过,如果有没被覆盖到... 阅读全文
posted @ 2018-08-25 09:48 EM-LGH 阅读(144) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;const int N=15;int dp[N][1<<N],v[1<<N],M[N][N];int n,m,cnt;const int mod=100000000;void init(){ fo... 阅读全文
posted @ 2018-08-24 19:12 EM-LGH 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 简单的状压动归#include#includeusing namespace std;const int N=17;const long long INF=10000000+233;long long dp[1dis[i][k]+dis[k][j])dis[... 阅读全文
posted @ 2018-08-24 19:09 EM-LGH 阅读(221) 评论(0) 推荐(0) 编辑
摘要: Code: 7 阅读全文
posted @ 2018-08-24 19:07 EM-LGH 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 最多的操作次数是 $n+m-1$ (相当于把第一个暴力合并,再暴力拆成第二个).如果第一个序列的一个子序列和第二个区间的子序列相等,那么总次数就可以减 $2$.将第二个序列所有数取反,直接求解有多少个子序列的和为 $0$ 即可 $ans=n+m-dp[1<<(n+m)-1]$具体: $dp[i]=m 阅读全文
posted @ 2018-08-24 19:04 EM-LGH 阅读(175) 评论(0) 推荐(0) 编辑
摘要: #include#includeusing namespace std;const int N=100000+3;int x[N], y[N], Y[N], A[N], nums[N];int C[N];int cmp(int i,int j){ if... 阅读全文
posted @ 2018-08-23 20:05 EM-LGH 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;const int N=250000+6;int C[N0)tmp+=C[t],t-=lowbit(t); return tmp;}void dfs(int u,i... 阅读全文
posted @ 2018-08-23 20:03 EM-LGH 阅读(206) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;const int N=2000000+9;int C[N],flower[N],pre[N],head[N];int A[N],l[N],r[N],ans[N];int... 阅读全文
posted @ 2018-08-23 20:00 EM-LGH 阅读(194) 评论(0) 推荐(0) 编辑