上一页 1 ··· 23 24 25 26 27
摘要: 状态转移 b[i]记录价值为i的单词种类数 d[j+k*i]+=b[j] , k<=a[i]&&j+k*i<=50 表示价值为j+k*i的单词可以由价值为j的单词加上k个i字母转移而来 最后统计即可 #include<stdio.h> int main(){ int T,t,i,j,k,a[27]= 阅读全文
posted @ 2020-01-19 14:10 StelaYuri 阅读(129) 评论(0) 推荐(0)
摘要: 二维图的动态规划 因为不能穿越对角线,则选取对角线的一边dp即可 选取对角线右下侧 则x轴上每个点只能由其左侧的点走过去(只有1条) 对角线上的点只能由对角线下方的点走过去 其他点可以由左侧和下侧两种方式到达 因为对角线左上和右下均可 所以答案*2 #include<stdio.h> long lo 阅读全文
posted @ 2020-01-19 13:56 StelaYuri 阅读(140) 评论(0) 推荐(0)
摘要: 推出n=1到4时,An排列的种类数分别为 1 4 15 64 可得 (1+1)*2=4 (4+1)*3=15 (15+1)*4=64 ... 故用一数列r[n]记录An的种类总数 当n=3时,列举出以下15种从大到小的排列 1 1 2 1 2 3 1 3 1 3 2 2 2 1 2 1 3 2 3 阅读全文
posted @ 2020-01-19 13:48 StelaYuri 阅读(163) 评论(0) 推荐(0)
摘要: 只需求出乌龟最短耗时跟兔子耗时比即可 将起点 0 和终点 N+1 也看做充电站,进行动态规划 对第i个点进行动态规划,则可以得到状态转移方程为 dp[i] = max{dp[j]+time[i][j]} j∈[0,i] time[i][j]=max(不充电从i到j耗时 , 在i充满电后再到j耗时) 阅读全文
posted @ 2020-01-19 12:53 StelaYuri 阅读(168) 评论(0) 推荐(1)
摘要: 枚举区间可能的长度len,将m减去1~len构成的序列和后如果结果是len的倍数,则可以构成答案区间。 #include<stdio.h> #include<math.h> int main(){ int n,m,len,b; while(scanf("%d%d",&n,&m)!=EOF&&(n|| 阅读全文
posted @ 2020-01-19 12:45 StelaYuri 阅读(152) 评论(0) 推荐(0)
摘要: 处理后再判断即可,处理过程注意考虑全面。 #include<iostream> #include<string> using namespace std; string s[2]; void shape(int n){ int i,pj=0,len=s[n].length(),p=0; if(s[n 阅读全文
posted @ 2020-01-18 01:11 StelaYuri 阅读(165) 评论(0) 推荐(0)
摘要: 栈运用的模板题,对于符号进行出入栈操作,每次与栈顶的符号进行优先级判断,得出第一行后缀表达式。 在其后的化简计算中,每次用一个特殊符号(代码中使用了'?')代替原来的计算结果引用,并开一个数组表示每次的计算结果,之后搜索到'?'时用这个结果进行代入计算。 直到只剩下一个数字,停止程序。 #inclu 阅读全文
posted @ 2020-01-18 00:51 StelaYuri 阅读(212) 评论(0) 推荐(0)
摘要: 打表处理(Case 1超时) 对m进行枚举,每次枚举进行一次判断 因为好人坏人均为k个,那么只要让下一个死亡的人的位置p保证在1~剩余坏人数量之间即可,不满足则直接break枚举下一个m 实际上对于m,因为m必须是 [2kC+1,2kC+k] C∈N+ 之间的数,所以还能再优化,但下面的代码已经能够 阅读全文
posted @ 2020-01-18 00:41 StelaYuri 阅读(123) 评论(0) 推荐(0)
上一页 1 ··· 23 24 25 26 27