只写了和dp有关的..博客 https://www.cnblogs.com/huyufeifei/p/10351068.html 关于状态的继承和转移 这题的状态转移要分开两步来做: 1.继承之前状态的合法构造数量 2.构造出该状态下特有的新构造数量 这类dp尽量由已知状态推出未知态(加法转移)来做...自己用减法转移都不知道边界怎么写.. #include <cstdio> #include <algorithm> , MO = ; ], sum[N]; inline void…
1061: 从三个数中找出最大的数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][Web Board] Description 定义一个带参的宏(或者模板函数),从三个数中找出最大的数. Input 3个短整型数,空格隔开 3个实数,空格隔开 3个长整数,空格隔开 Output 最大的数,对于实数保留2位小数. Sample Input 1 2 3 1.5 4.7 3.2 12345…
题意:https://nanti.jisuanke.com/t/41420 给你n个石子的重量,要求满足(Sum<=2*sum<=Sum+min)的方案数,min是你手里的最小值. 思路: 从最大重量的石子开始背包,每次ans+=dp[j-v[i]]就行了. #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//sprintf islower isupper #include <cst…
题目链接:https://vjudge.net/contest/220679#problem/C 剪花布条                                                    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                                                             …
分析:设方案数为ANS,C代表组合数: ANS=(C[K,I]*C[K-I,I][K-2*I,I]*...*C[K-(J-1)*I,I])/(J!); 也即: ANS=C[K,I*J]*(C[I*J,I]*C[I*J-I,I]*C[I*J-2*I,I]*...*C[I,I])/(J!); 又因为C[I*J,I]/J=C[I*J-1,I-1]; 所以即化简为: ANS=C[K,I*J]*(C[I-1,I-1]*C[2*I-1,I-1]*...*C[I*J-1,I-1]);…
862. 二进制数01串 ★   输入文件:kimbits.in   输出文件:kimbits.out   简单对比 时间限制:1 s   内存限制:128 MB USACO/kimbits(译 by !Starliu ) 描述 考虑排好序的N(N<=31)位二进制数. 你会发现,这很有趣.因为他们是排列好的,而且包含所有可能的长度为N且含有1的个数小于等于L(L<=N)的数. 你的任务是输出第I(1<=I<=长度为N的二进制数的个数)大的,长度为N,且含有1的个数小于等于L的那个…
给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n, 并且子串s[0..k - 1]中的0的个数与子串s[k..n - 1]中1的个数相等. 注意: (1) 如果k = 0, s[0..k - 1]视为空串 (2) 如果k = n, s[k..n - 1]视为空串 (3) 如果存在多个k值,输处任何一个都可以 (4) 如果不存在这样的k值,请输出-1 Input 就一行,包含一个0-1串S,长度不超过1000000. Output 题目要求的k值 Input示例 01…
D. Flowers time limit per test:1.5 seconds memory limit per test:256 megabytes We saw the little game Marmot made for Mole's lunch. Now it's Marmot's dinner time and, as we all know, Marmot eats flowers. At every dinner he eats some red and white flo…
给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n, 并且子串s[0..k - 1]中的0的个数与子串s[k..n - 1]中1的个数相等. 注意: (1) 如果k = 0, s[0..k - 1]视为空串 (2) 如果k = n, s[k..n - 1]视为空串 (3) 如果存在多个k值,输处任何一个都可以 (4) 如果不存在这样的k值,请输出-1 收起   输入 就一行,包含一个0-1串S,长度不超过1000000. 输出 题目要求的k值 输入样例 01 输出样例…
题目链接:https://www.luogu.org/problem/show?pid=1466 题目大意:对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的:{3} 和 {1,2}. 解题思路:01背包问题,设sum是1~n之和,其实就是求用数字1~n凑出sum/2的方案数(每个数字只能用一次),概括为以下几点: ①sum为奇数不能平分,直接…