博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu--4504--又是dp啊<方案决策数>
阅读量:4966 次
发布时间:2019-06-12

本文共 1757 字,大约阅读时间需要 5 分钟。

其实 这题 有点类似 以前做过的一题

hdu的1028 就是给你一个数n 然后让你求出能满足等于它的加法等式

也是个dp[x][y]的状态

这边的话 就是dp[x][y]表示打到第x次进攻的时候 我得到了y分的进攻策略有多少种

然后转移方程 不难dp[i][j] += dp[i-1][j-1]     dp[i][j]+= dp[i-1][j-2]  dp[i][j] += dp[i-1][j-3]

然后就是对于进攻0次 进行下特判就好..

哎 去找班主任请假了 -.-

1 #include 
2 using namespace std; 3 4 const int size = 25; 5 typedef long long LL; 6 LL dp[size][size*3];//dp[x][y]到第x次进攻得到y分有几种方法 7 int score_times; 8 9 void solve( )10 {11 for( int i = 1 ; i<=score_times ; i++ )12 {13 for( int j = 1 ; j<=i*3 ; j++ )14 {15 if( j>1 )16 dp[i][j] += dp[i-1][j-1];17 if( j>2 )18 dp[i][j] += dp[i-1][j-2];19 if( j>3 )20 dp[i][j] += dp[i-1][j-3];21 }22 }23 }24 25 int main()26 {27 cin.sync_with_stdio(false);28 LL ans;29 int min_score , a , b , t;30 while( cin >> a >> b >> t )31 {32 memset( dp , 0 , sizeof(dp) );33 dp[1][1] = dp[1][2] = dp[1][3] = 1;34 ans = 0;35 min_score = a - b - 1 - t/30;36 score_times = (t/15+1)/2;37 if( score_times == 0 )38 {39 if( min_score>=0 )40 {41 cout << 1 << endl;42 }43 else44 {45 cout << 0 << endl;46 }47 }48 else49 {50 min_score = min_score <=0 ? -min_score : 0;51 solve( );52 for( int i = min_score ; i<=score_times*3 ; i++ )53 {54 ans += dp[score_times][i];55 }56 cout << ans << endl;57 }58 }59 return 0;60 }61 a
View Code

 

today:

  这个世界上的每个角落无时无刻不上演着离别与告别

 

转载于:https://www.cnblogs.com/radical/p/4010500.html

你可能感兴趣的文章
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>
Java回顾之多线程
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>