例题: 1.POJ 3744 详解: 2.POJ 3071 Football 代码: cpp include include using namespace std; const int N=(1"(s+len/2)?(s+1):(s+len/2+1)); int r=(j s+len/2?s+le ...
分类:
其他好文 时间:
2020-02-28 17:20:10
阅读次数:
51
"题目链接" 经典的树形dp,最大独立集,对于每个点就有2个状态,选/不选 设$dp_{i,0}$表示不选第i个,$dp_{i,1}$表示选第i个,容易得到其状态转移 $dp_{i,0} = \sum{max(dp_{j,0}, dp_{j,1})}(j为i的儿子节点)$ $dp_{i,1} = r ...
分类:
其他好文 时间:
2020-02-26 21:19:28
阅读次数:
76
POJ 2184 01背包 负数处理 题意 给你 头奶牛,每头奶牛都有一个智商和情商,选出的若干头奶牛,使得 智商和 与 情商和 都大于等于 的情况下,求智商总 情商总和的最大值。 解决思路 这里是选和不选的问题, 问题了。首先重量为正数时就是正常的01背包,但重量为负数时由于下标不能为负,我们需要 ...
分类:
其他好文 时间:
2020-02-26 20:39:01
阅读次数:
103
Treats for the Cows 先搬中文 Descriptions: 给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划取数顺序,使获得的总价值之和最大。 ...
分类:
其他好文 时间:
2020-02-26 19:15:13
阅读次数:
65
代码: #include<iostream> #include<stdio.h> using namespace std; const int maxn = 1001; int a[maxn],dp[maxn]; int main(){ int n; cin>>n; for(int i=1;i<=n ...
分类:
其他好文 时间:
2020-02-26 18:32:51
阅读次数:
54
(原题见POJ2010) 这道题我之前采用了优先队列+预处理的方法求解(https://www.cnblogs.com/jacobfun/p/12244509.html),现在用二分的办法进行求解。 一开始我很纳闷,采用二分求解本题,如果二分的mid值不符合条件,按照二分右边界应该为mid - 1( ...
分类:
其他好文 时间:
2020-02-24 17:04:26
阅读次数:
92
题目: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜 ...
分类:
其他好文 时间:
2020-02-21 20:39:30
阅读次数:
66
The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each of that numbers is not greater than 15000. This numbers are not nece ...
分类:
其他好文 时间:
2020-02-21 20:07:51
阅读次数:
74
题目:传送门 题意: 给你 n 条线段的两个端点, 然后有多次询问, 每次询问, 问你线段 x 和 线段 y 是否相交。 若线段 A 和线段 B 相交且线段 A 和线段 C 相交,那么线段 B 和线段 C 相交。 1 < n < 13 题解: 暴力求线段是否相交, 然后再跑个 Floyd 或者并查集 ...
分类:
其他好文 时间:
2020-02-21 16:34:06
阅读次数:
77
题目:传送门 题意: 给你 n 个不相交的圆, 问你有多少圆不被其他圆内含。 解: 我们把所有圆的左端点和右端点的 x 单独拿出来按升序排序, 然后从左往右扫。 然后遇到左边点就判断这个圆是否被内含, 不被内含就加入 ans。 具体可看代码。 #include <iostream> #include ...
分类:
其他好文 时间:
2020-02-21 14:19:14
阅读次数:
58