- 博客(9)
- 收藏
- 关注
原创 HDU5478 Can you find it
题目链接题意:给定 C,k1, b1, k2 找出所有的(a, b)满足 ak1⋅n+b1+ bk2⋅n−k2+1 = 0 (mod C)(n = 1, 2, 3, ...) (1思路:n = 1时,找出(1,C)范围内的满足的(a, b)组合,然后暴力枚举n,把符合的留下代码如下:(1≤a,bC)#include #include #include #includ
2015-09-26 21:29:02 662
原创 Codeforces 580D Kefa and Dishes
题目链接题意:n个点 m条有向边 选恰好k个点下面n个数给出点权下面m行给出边和边权设上一次选的点是u这一次选的点是v,则可以获得边权u->v的价值。问:使得选出的权和最大,问最大的权和思路:显然是状压dp,每个点只有两种情况,选或者不选,dp[i][j]表示选的点状态为i,最后一次选的点是j的最大价值。状态转移方程:dp[(1 代码如下:#includ
2015-09-24 20:59:40 512
原创 Codeforces 580C Kefa and Park(dfs)
题目链接题意:给定n个点的数 常数m下面n个数给出点权(点权为0或1)要求从根走到叶子节点的最短路径上 连续1的个数不超过m个 的叶子节点有多少个思路:dfs搜一遍代码如下:#include#include#include#include#include#includeusing namespace std;typedef long long ll;co
2015-09-24 20:54:22 814
原创 CodeForces 555A Case of Matryoshkas
题目链接题意,俄罗斯套娃,数字小的在里面,数字大的在外面,n个套娃,k组,求将1——n个套娃套在一起的最小步数,简单模拟代码如下:#include#include#include#include#include#includeusing namespace std;const int N = 1e5+10;int n, k, a;int main(){ whil
2015-09-20 10:33:25 423
原创 HDU1231 最大连续子序列
题目链接代码如下:#include#include#include#include#define mem(a, b) memset(a, b, sizeof(a))using namespace std;int dp[10005], num[10005];int main(){ int n, ans, tmp; while(~scanf("%d", &n
2015-09-12 21:05:38 434
原创 hdu 1005 Number Sequence(找规律)
题目链接比较简单的一道找规律题,一开始没优化,果然超内存了...对于公式 f[n] = A * f[n-1] + B * f[n-2] 只有7 * 7 = 49 种可能因为对于f[n-1] 或者 f[n-2] 的取值只有 0,1,2,3,4,5,6 这7个数,A,B又是固定的,所以就只有49种可能值了由该关系式得知每一项只与前两项发生关系,所以当连续的两项在前面出现过循环节出现了,
2015-09-04 21:47:34 443
原创 hdu1003 最大连续子序和
题目链接代码如下:#include#include#include#include#includeusing namespace std;typedef long long ll;const int N = 1e5+10;int n, s, e, k;int a[N];int main(){ int t , j; scanf("%d", &t); for(j =
2015-09-04 16:39:42 415
原创 Codeforces Round #317 A.Lengthening Sticks
题目链接题意:给出a,b,c,L,要求 a+x, b+y, c+z 构成三角形,x + y + z 思路:用容斥来做,结果ans=全部组合的情况 - 不符合三角形定理的情况。1.求全部组合的情况: 当L=0时,res=1; 当L=1时,res=3;所以当L=1时形成的情况为1+3=4 当L=2时,res=6;所以当L=2时形成的情况为4+6=10 当L=
2015-09-03 19:43:02 408
原创 ZOJ1234 Chopsticks
题目链接题意:给定n个筷子的长度,取k+8套筷子,每套有3个,长度分别为A,B,C。求组成k+8套筷子(A-B)^2的和的最小值,输出这个最小值。思路:题目中所给的筷子长度是非降序排列的,所以最小的两个A和B一定是相邻的。先不考虑筷子C,只要留着就行,即(n-j)> (k-i)*3 (加上等号就代表没有预留筷子C)dp[i][j]表示从 j 个筷子中取 i 套筷子的最优
2015-09-01 15:00:40 559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人