上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 53 下一页
摘要: dp 以前做过 忘了。 想破脑袋不知道怎么设状态 dp[i][j][k]表示选到第i个硬币,当前和为j,能否弄出k dp[i][j][k]|=dp[i-1][j][k]|dp[i-1][j][k-c[i]]|dp[i-1][j-c[i]][k-c[i]] 如果发现状态不行,就试着多加一维,也许就能搞 阅读全文
posted @ 2017-07-15 16:51 19992147 阅读(173) 评论(0) 推荐(0) 编辑
摘要: A 暴力查询,分三段查就可以了 #include<bits/stdc++.h> using namespace std; const int N = 110; int n, pos; int a[N]; int main() { scanf("%d", &n); for(int i = 1; i < 阅读全文
posted @ 2017-07-15 15:50 19992147 阅读(120) 评论(0) 推荐(0) 编辑
摘要: dp dp[i][j]表示到了i赢和输的差为j 如果这位是?向dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]转移,如果是W向dp[i-1][j-1]转移,如果是L向dp[i-1][j+1]转移,如果是D向dp[i-1][j]转移 #include<bits/stdc++.h 阅读全文
posted @ 2017-07-15 00:01 19992147 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 费用流 并没有想出来构图方法 我们设立源汇,其实我们关心的是相邻两个值的差值,如果差值小于0说明需要长高,那么向汇点连边差值,说明需要修改,如果差大于零,那么由源点连边差值,说明可以提供修改空间,再由源点向1和n+1连边inf,因为这两个点是可以无限修改的。然后1-2-3-n+1连双向边,费用为1, 阅读全文
posted @ 2017-07-12 22:06 19992147 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 二分+2-sat 枚举第一个权值,二分第二个权值,然后2-sat检查,当第一个权值已经不能形成二分图时,再往下没意义,因为没法分成两个点集。(双指针好像跑得慢) #include<bits/stdc++.h> using namespace std; const int N = 410; struc 阅读全文
posted @ 2017-07-12 21:58 19992147 阅读(272) 评论(0) 推荐(1) 编辑
摘要: 模拟 很明显应该尽量选最大或最小的数。那么我们维护一个set,再维护一个mp,每次检查是否能选,如果选完这个数上面的东西不悬空就可以选,每次选完都要更新四周-2+2的方块,因为再远就影响不到了 #include<bits/stdc++.h> using namespace std; typedef 阅读全文
posted @ 2017-07-11 22:37 19992147 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 贪心 感觉思路很奥妙 首先我们把那些比两边小的数删掉,因为不删的话两边的数就会选这个数,这样就成了先上升后下降的序列,很明显除了第一第二大的数都能选,然后统计就好了。 #include<bits/stdc++.h> using namespace std; typedef long long ll; 阅读全文
posted @ 2017-07-11 22:34 19992147 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 贪心 这个贪心不太懂啊 dfs返回子树需要的最小值,然后按需要减消耗排序,然后贪心选取即可。 #include<bits/stdc++.h> using namespace std; typedef pair<int, int> PII; const int N = 110; struct Node 阅读全文
posted @ 2017-07-11 09:16 19992147 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 费用流 这种棋盘模型大概都是网络流吧 首先我们知道棋子之间不会影响到达目标的步数,那么就好做了,枚举终点,然后就是最小权匹配了,因为就是寻找总和最小,然后费用流就行了。 #include<bits/stdc++.h> using namespace std; const int N = 110, i 阅读全文
posted @ 2017-07-11 09:09 19992147 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树+搜索 抄了抄代码 先开始不知道怎么限制哈夫曼树,然后看了看代码,是用bfs序来限制。因为每个节点的右子树节点肯定不小于左儿子,同一层也是。所以先搞出bfs序,然后搜索,判断每一层右边是否大于左边。 哈夫曼树的每个节点必然会有零个或两个儿子,这也是判断无解或有解的情况。 #include<b 阅读全文
posted @ 2017-07-10 10:11 19992147 阅读(150) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 53 下一页