- 博客(7)
- 收藏
- 关注
原创 HDU5672String
尺取法基本步骤:1.初始化左右端点为起点2.不断扩大右端点,直到满足条件3.如果第二步中无法满足条件,则终止,否则更新结果4.将左端点扩大1,然后回到第二步,知道左端点到达结尾#include#includeusing namespace std;int k,c[30];char s[1000005];int main()
2016-05-08 18:21:57 338
原创 HDU5671Matrix
矩阵处理,记录好每行与列在原来的位置即可原来的第i行现在在第x[i]行,原来的第i列现在在第y[i]列xd[i]表示第i行需要增加的值,yd[i]表示第i列需要增加的值#include#includeusing namespace std;const int maxn=1005;int n,m,q;int a[maxn][maxn];int x[maxn],y[m
2016-05-08 16:46:22 284
原创 POJ2229 Sumsets
递推即可,设n可表示成dp[n]种二次幂的方式,则有1.当n为奇数时,显然必定有一个1,故dp[n]=dp[n-1];2.当n为偶数时,有2种情况 (1)分解的二次幂和中含有1,则必然有2个1,故有dp[n]+=dp[n-2]; (2)分解的二次幂和中不含1,则有dp[n]+=dp[n>>1];#includeusing namespace std;const i
2016-05-01 18:20:16 258
原创 完全背包
题目:hihocoder#1043关于背包问题的详细解释可以参见《背包九讲》#include#includeusing namespace std;const int maxn=505;const int maxm=100005;int need[maxn],value[maxn],dp[maxm];int main(){ memset(dp,0,size
2016-04-22 21:18:54 276
原创 01背包
题目:hihocoder#1038#include#includeusing namespace std;const int maxn=505;const int maxm=100005;int need[maxn],value[maxn],dp[maxm];int main(){ memset(dp,0,sizeof dp); int n,m;
2016-04-22 21:14:21 198
原创 最大连续子序列和
#includeusing namespace std;long long a,ans;int main(){ int t; cin>>t; while(t--){ int n; cin>>n; long long maxsum,ans; sum=maxsum=0; ans=-1e8;//根据需要自行修改
2016-04-19 17:51:06 210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人