水题
RuHua27
这个作者很懒,什么都没留下…
展开
-
HDOJ 1003 Max Sum
DP水题。dp[i] 表示以 i 结尾的最大子序列。方程:dp[i] = max(dp[i-1] + a[i], a[i])选择最大的 dp[i] 即可。需要注意一下要求输出 "the first one",即 dp 值相等时优先考虑 lt 值较小的。总结:dp[i] 不一定表示最终答案,可以先得到所有点的 dp 值,再通过枚举得到答案。#include原创 2013-12-11 10:53:58 · 374 阅读 · 0 评论 -
POJ 2318 TOYS (矩形内判断点与线段关系,水)
第一道计算几何的题,非常水。。感觉计算几何里有各种结构体。。原创 2014-04-07 21:06:30 · 376 阅读 · 0 评论 -
POJ 2398 Toy Storage(叉乘,水)
和POJ 2318 几乎一模一样,只是多了个排序,然后输出格式个原创 2014-04-08 12:59:44 · 43279 阅读 · 0 评论 -
POJ 1269 Intersecting Lines(直线位置关系,水)
利用叉积判断直线位置关系,叉积为0则共线或ping原创 2014-04-09 21:09:57 · 403 阅读 · 0 评论 -
HDOJ 4815 Little Tiger vs. Deep Monkey(简单DP)
2013长春现场赛的题,简单DP。#include #include #include using namespace std;const int maxn = 50, maxs = 50000;int s[maxn];double dp[maxn][maxs];int main(){ int t; for(scanf("%d", &t); t--;)原创 2014-03-16 12:23:23 · 390 阅读 · 0 评论 -
HDOJ 1114 Piggy-Bank(完全背包,水)
水多重背包,求的是 min 而不是常见的 maxdp[i][v] = min(dp[i][v], dp[i][v-c[i]] + w[i])#include #include #include using namespace std;const int maxn = 11000, inf = 0x3f3f3f3f;int dp[maxn], p[maxn], w[maxn];原创 2013-12-23 10:16:45 · 502 阅读 · 0 评论 -
POJ 1251 Jungle Roads(超裸MST)
就当恢复手感了,最近刷刷图论。。。人弱不拆...刚开始路径压缩那里有个小bug,已经注释了#include #include using namespace std;const int maxe = 220, maxv = 30;typedef struct Edge { int fr, to, wt;}Edge;Edge edge[maxe];bool cm原创 2014-01-20 12:08:42 · 491 阅读 · 0 评论 -
HDOJ 1208 Pascal's Travels(水DP)
水DP。。。#include #include #include using namespace std;typedef long long LL;const int maxn = 40, inf = 0x3f3f3f3f;LL mat[maxn][maxn], dpa[maxn][maxn];int n;LL dp(int i, int j){ if(~dpa[i原创 2013-12-27 20:00:36 · 515 阅读 · 0 评论 -
HDOJ 1355 The Peanuts(水)
水题。。。#include #include #include #include #include using namespace std;typedef struct node { int x, y, val;}node;bool operator <(node a, node b){ return a.val < b.val;}priority_q原创 2013-12-27 20:03:53 · 432 阅读 · 0 评论 -
HDOJ 1165 Eddy's research II(数学)
推 Ackermann 的通项,刚开始直接搞,果断 MLE 了。。。高中数列知识即可#include using namespace std;const int maxm = 4, maxn = 1001000;typedef long long LL;LL ak[maxm][maxn];LL mypow(LL x){ LL ret = 1; LL k =原创 2013-12-25 13:09:19 · 577 阅读 · 0 评论 -
HDOJ 1203 I NEED A OFFER!(简单背包)
求得不到 offer 的最小概率即可。显然可以转化为简单背包。#include #include #include using namespace std;const int maxn = 10100, maxv = 10100;int n, m;int c[maxn];double p[maxn];double dp[maxv];int main(){ w原创 2013-12-25 13:33:18 · 490 阅读 · 0 评论 -
HDOJ 1087 Super Jumping! Jumping! Jumping! (水,LIS)
很裸的 LIS 。#include #include #include using namespace std;int main(){ int a[1100], dp[1100]; for(int n; ~scanf("%d", &n) && n;) { int ans = 0; for(int i = 0; i < n; i++)原创 2013-12-19 12:52:16 · 347 阅读 · 0 评论 -
HDOJ 2602 Bone Collector(水,简单背包)
简单背包,题意有问题,数据是先 volume 后 value,描述却说先 value 后 volume 。#include #include #include using namespace std;const int maxn = 1100;int dp[maxn], c[maxn], v[maxn];int main(){ int t; for(cin原创 2013-12-19 10:22:53 · 447 阅读 · 0 评论 -
HDOJ 1331/HDOJ 1579 Function Run Fun(水递推)
水递推。。。#include using namespace std;const int maxn = 21;int dp[maxn][maxn][maxn];int main(){ for(int i = 0; i < maxn; i++) for(int j = 0; j < maxn; j++) dp[0][i][j] = d原创 2013-12-27 20:02:03 · 624 阅读 · 0 评论 -
HDOJ 1723 Distribute Message(超水DP)
期末复习累了,水水~#include #include using namespace std;int dp[35];int main(){ int n, m; while(~scanf("%d%d", &n, &m) && (n || m)) { memset(dp, 0, sizeof(dp)); dp[0] = 1;原创 2013-12-30 15:45:05 · 392 阅读 · 0 评论 -
HDOJ 1159 Common Subsequence(水DP,LCS)
DP 水题。方程 dp[i][j] = (s1[i] == s2[j]) ? dp[i-1][j-1] + 1 : max(dp[i-1][jj], dp[i][j-1])初始化 WA 了一记。。。具体见代码注释#include #include #include #include using namespace std;const int maxn = 1000;i原创 2013-12-16 10:26:36 · 484 阅读 · 0 评论 -
HDOJ 1176 免费馅饼
方程比较简单的DP。dp[t][x] = cnt[t][x] + max(dp[t+1][x], dp[t+1][x+1], dp[t+1][x-1])总结:开始写成记忆化搜索爆栈了,然后发现 t 时刻完全可以由 t+1 推出,所以改成用循环来推就 AC 了。#include #include using namespace std;const int maxn = 10200原创 2013-12-11 16:04:51 · 470 阅读 · 0 评论 -
ZOJ3726 Alice's Print Service(二分)
二分即可,注意有的价格会原创 2014-07-31 19:35:54 · 401 阅读 · 0 评论