- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 A.Alyona and copybooks
这题考查思维的全面性。 一开始我直接分类推公式,余数不同分类讨论。AC代码:#include#includeusing namespace std;typedef long long LL;const LL inf=1e12;int main(){ LL ans=inf; LL n,a,b,c; scanf("%lld%lld%lld%lld",&n,&a,&b,&c)
2016-11-26 11:06:35 229
原创 uva10003 区间DP
很清晰的区间dp问题。d(i,j)表示断点i到断点j的最小费用,由于开头和结尾也是断点,所以应该加入断点数组,即cut[0]=0;cut[n+1]=len; 边界就是d(i,i+1)=0; 转移方程:for(int h=j+1;h<k;++h){ dp[j][k]=min(dp[j][k],dp[j][h]+dp[h][k]+cut[k]-cut[j]);}答
2016-11-23 22:07:57 42
原创 蓝桥杯 最大最小公倍数
一开始想错了得出了错误的贪心公式,后来经过好友的讲解+证明,原来这题这么巧妙。 思路:贪心要得到的一定是三个最大互质的数。当n时奇数时,n和n-1互质,n-1和n-2互质,如果能证明n和n-2互质,那么n、n-1、n-2互质,用反证法证明:假设n和n-2有公因数k,那么n/k为正数,(n-2)/k也是整数,且差也为整数且不为0,即(n-(n-2))/k为一个正整数,k不能为1只能为2,很明
2016-11-22 19:51:40 365
原创 uva1625
思路:每次选择颜色面临有两个选择:1、序列A的首部颜色 2、序列B的首部元素,定义状态d[i][j]表示A序列已经选取了前i个颜色,B序列已经选取了前j个颜色的情况下最小的L(c)总和。 状态转移:cnt1表示在状态d[i-1][j]将第i个颜色放入时"已经出现但尚未结束的颜色种数",同理,cnt2表示在状态d[i][j-1]将第j个颜色放入时"已经出现但尚未结束的颜色种数",得到dp[i][j]
2016-11-22 19:21:16 267
原创 uva12563
一个简单的0-1背包,背包容量为t-1,每个物品价值为1,代价为t[i]。背包容量为t-1而不是t的原因是留1s唱《劲歌金曲》。AC代码:#include#include#includeusing namespace std;const int maxn=180*50+678+5;struct node{ int len,tim; node(){ } node(int l
2016-11-22 19:08:17 352
原创 uva 11584
这段时间感觉有些迷茫,希望能尽快调整。 题意:把字符串划分为最少的回文,即让每个回文尽量长。 思路:d[i]表示前i个字符的最少回文数,状态方程 如果从j到i能够形成回文 d[i]=min(d[j-1]+1,d[i]),枚举j;为了更快的判断i~j是否为回文,可预处理。AC代码:#include#include#includeusing namespace std;cons
2016-11-20 17:15:42 391
原创 hdu3555 数位dp
dp[i][0]表示没有“49”的最高位不为0个数,dp[i][1]表示最高位为“9”且没有“49”,dp[i][2]表示含有“49”且最高位不为0,i表示i位 转移方程:memset(dp[0],0,sizeof(dp[0])); dp[1][0]=10; //without "49" dp[1][1]=1; //start with "9" without "49"
2016-11-13 10:13:08 238
原创 poj 3278 简单BFS
题意:给定农夫和奶牛的初始位置,农夫可以当前位置+1、-1、*2三种移动方式,问最少需要多少分钟抓住奶牛AC代码:#include#include#includeusing namespace std;const int maxn=100000+5;const int dx[]={-1,1,2};int d[maxn];int n,k;int bfs(){ queueq;
2016-11-12 17:34:26 301
原创 hdu 1548 简单BFS
题意:坐电梯,每次可以选着上下,对应移动的楼层是Ki,问从起点到终点最少要按几次。 AC代码:#include#include#includeusing namespace std;const int maxn=205;int n,a,b;int d[maxn],p[maxn];const int dx[]={-1,1};int bfs(){ queueq; mem
2016-11-12 16:53:01 337
原创 CodeForces - 730A 贪心+模拟
贪心策略:1、只有一个最大值,选着第二大的一起参加比赛减分。2、有奇数个最大值,选择三个进行比赛。3、偶数个最大值,选择两个进行比赛。为什么不把最大值全部选择?因为最多只能选五个,有可能选择完五个只剩下一个最大值,那么就会进行贪心策略1,会出错。AC代码:#include#includeusing namespace std;const int maxn=1e4+
2016-11-11 22:53:44 627 2
原创 CodeForces - 681A A Good Contest
咳咳,从今天开始,每天做一个英语题,不论简单还是难,坚持到下学期的省赛,希望能有效果。 这题就是判断是否能成为red,如果他超越的人里面有在比赛前分数达到2400,并且在比赛后分数上升,那么他就能成为redAC代码:#include#includeusing namespace std;int main(){ string name; int pre,aft,n
2016-11-10 23:14:13 431
原创 蓝桥杯 求最大值 dp
这题很暴力的一个DP,d[i][j]表示前i个数对选择一些Ai的和为j的最大Bi和。 状态转移方程:dp[i][j]=max(dp[i][j],dp[i-1][j-sc[i].a]+sc[i].b);AC代码#include#include#includeusing namespace std;const int inf=1<<28;const int maxn
2016-11-09 19:16:25 523
原创 1065: 恼人的实验报告册 贪心
1065: 恼人的实验报告册Time Limit: 2 Sec Memory Limit: 10 MBSubmit: 26 Solved: 3[Submit][Status][Web Board]Description记得以前有个小朋友给我说:“实验报告写得再好,到了老师那里都是一堆废纸。”其实不是这样的,我们实验室还要当宝物一样的供在那里。如果以每位同学每学期交30份
2016-11-07 14:12:58 284
原创 求解表达式的值 表达式树的运用
1061: 求解表达式的值Time Limit: 1 Sec Memory Limit: 10 MBSubmit: 3 Solved: 2[Submit][Status][Web Board]Description求解一个混合表达式的值,注意要求严格按照C语言的运算规则来求解表达式的值。Input 输入一个混合表达式,为了问题简单表达式中只包含+(加),
2016-11-07 13:59:31 1570
原创 hdu 2047递推
A[N]表示以E或者F结尾的情况下的方案数,B[N]表示以O结尾的情况下的方案数,F[N]=3*A[N-1]+2*B[N-1] 同时,A[N]=2*B[N-1]+2*A[N-1],B[N-1]=A[N-1]AC代码:#includetypedef long long LL;const int maxn=40+5;LL ans[maxn];void solve(){
2016-11-05 14:18:33 389
原创 亚波利纳里斯的魔法糕点 二分枚举
1058: 亚波利纳里斯的魔法糕点(二)Time Limit: 1 Sec Memory Limit: 10 MBSubmit: 17 Solved: 3[Submit][Status][Web Board]Description亚波利纳里斯的生日派对举办得很成功,但生日当天有魔女混进了派对,发现他做的糕点非常好吃,于是魔女就在派对后把他抓走了。魔女提出要求,她提供更多
2016-11-04 14:44:57 424
原创 hdu 2046递推
递推公式 F[N]=F[N-1]+F[N-2];AC代码:#includeconst int maxn=55;long long ans[maxn];void solve(){ ans[1]=1; ans[2]=2; for(int i=3;i<=50;++i){ ans[i]=ans[i-1]+ans[i-2]; }}int
2016-11-04 14:36:18 257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人