数字三角形2
2016-07-03 23:17
211 查看
题目描述
数字三角形 要求走到最后mod 100最大输入
第1行n,表示n行 < =25 第2到n+1行为每个的权值输出
mod 100最大值样例输入
2 1 99 98
样例输出
99
#include <bits/stdc++.h> #include <iostream> #include <cstdio> #include <ctime> #include <cstring> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef double db; #define X first #define Y second #define mp(a,b) make_pair(a,b) #define pb push_back #define sd(x) scanf("%d",&(x)) #define Pi acos(-1.0) #define sf(x) scanf("%lf",&(x)) #define ss(x) scanf("%s",(x)) #define maxn 50005 const int inf=0x3f3f3f3f; const ll mod=1000000007; bool dp[30][30][100]; int num[30][30]; int main() { #ifdef local freopen("in","r",stdin); //freopen("out","w",stdout); int _time=clock(); #endif int n; cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) cin>>num[i][j]; } dp[1][1][num[1][1]]=1; for(int i=2;i<=n;i++) { for(int j=1;j<=i;j++) { for(int mod=0;mod<100;mod++) { if(dp[i-1][j][mod]||dp[i-1][j-1][mod]) dp[i][j][(mod+num[i][j])%100]=1; } } } for(int mod=99;mod>=0;mod--) { for(int j=1;j<=n;j++) { if(dp [j][mod]) { cout<<mod<<endl; return 0; } } } #ifdef local printf("time: %d\n",int(clock()-_time)); #endif }
View Code
相关文章推荐
- node JS 微信开发
- 编译升级php之路(5.5.7 到 5.5.37)
- 【工具安装】-CentOS源码安装php5.6
- 专题四 第十一道题
- 4商店
- 【NOIP2010TGT3】洛谷1525 关押罪犯【解法二】
- 最后的课程设计
- 测试LiveWriter
- unity 网格切割算法讲解
- 测试LiveWriter
- 数据链路层
- 2016计蒜之道复赛 联想专卖店大促销 二分+贪心
- 手动实现 NSTabViewController 的 Rect Transition 及 Propagate Title-b
- vue-loader + Webpack 环境搭建
- 草鸟linux学习之图形界面的安装
- Gradle
- 网络视频监控系统开发系列------视频监控系统的发展历史
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- Git 常用命令速查表(三)
- amoeba数据库中间件透明实现MYSQL读写分离