dp递推题2010年吉林省省赛
来源:互联网 发布:淘宝消费人群分析报告 编辑:程序博客网 时间:2024/04/29 13:36
递推题,思维!!
1456: 逃票的chanming(3)
时间限制: 2 Sec 内存限制: 128 MB提交: 326 解决: 48
[提交][状态][讨论版]
题目描述
这是一个神奇的国度。
这个国度一共有N个城市组成,让我们将他们编号为1~N,
这一天,chanming带着他的第一个月的工资K元来到了城市1。他想到城市N去寻找宝藏。经历了艰难险阻,上刀锅下油山,他终于来到了N市。在这里,他发现了n种宝藏。每一种宝藏有a[i]个。
Chanming是个有情有义的人,他怎么会忘记自己的小伙伴呢~他决定带着3件宝藏回去向他的三个小伙伴炫耀!他是这样考虑的:
他要带3件宝藏回去。
同一种类的宝藏他至多只带1件。
现在Chanming想知道知道他有多少种不同的方案。
输入
题目包含多组数据,你需要处理到文件结束(EOF)
每组数据第一行一个正整数n,表示n种类型(3 <= n <= 3000)
第二行有n个数,表述a[i] (a[i] <= 10000)
输出
对于每组数据,输出一个数,表示总共有多少种不同的选择(mod 400823823)
样例输入
31 2 3
样例输出
6
提示
来源
GDUT校赛
#include<stdio.h>#include<iostream>#include<math.h>#include<string.h>#include<algorithm>using namespace std;long long dp[3010][4];int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(dp,0,sizeof(dp)); long long a[3010]; for(int i=1;i<=n;i++) { scanf("%lld",&a[i]); } dp[3][3]=(a[1]*a[2]*a[3])%400823823; dp[3][2]=(a[1]*a[2]+a[2]*a[3]+a[1]*a[3])%400823823; dp[3][1]=a[1]+a[2]+a[3]; for(int i=4;i<=n;i++) { dp[i][3]=(dp[i-1][3]+dp[i-1][2]*a[i])%400823823; dp[i][2]=(dp[i-1][2]+dp[i-1][1]*a[i])%400823823; dp[i][1]=(dp[i-1][1]+a[i])%400823823; //printf("%lld\n",dp[i][3]); } printf("%lld\n",dp[n][3]); } return 0;}
0 0
- dp递推题2010年吉林省省赛
- 第九届吉林省省赛
- 2014年吉林省赛总结
- 2014年吉林省赛总结
- 2017吉林省赛总结
- 2015年吉林省赛 Pin Pin Pin(矩阵快速幂)
- 第十届 吉林省赛 E
- 2017吉林省赛 C题 线段树
- 2013 ACM/ICPC Asia Regional Online (吉林省赛)
- 2014 ACM 吉林省赛 A 题 The Longest Straight
- 吉林省信息学奥赛 2017 冬令营 数论基础 专题测试
- 家乐福吉林省
- 评职称教育类学报《吉林省教育学院学报》2012年征订稿进行中
- 加快速度后方可吉林省
- 吉林省中深建装饰设计工程有限公司
- 吉林省公务员面试真题解析
- 吉林省公务员面试真题解析
- 2017吉林省教师招聘考试:存在主义教育
- 黑马程序员_java基础语法
- 签到一下
- 动态链接库中分配内存引起的问题-- windows已在XX.exe中触发一个断点
- 高质量C/C++编程指南 阅读笔记(五)类的继承与组合
- uva1376(LA3661) Animal Run
- dp递推题2010年吉林省省赛
- poj 2195 KM
- asla架构和alsa-lib音频库的移植 .
- kicad快捷键
- 看了极光推送技术原理的几点思考
- printf()函数,%d
- hdu 1166 敌兵布阵
- Linux几种进程间通信机制的对比
- CGI规范及其历史