牛客练习赛7
2017-12-01 21:50
267 查看
退役不退坑,以后还是要每周打一场比赛,训练思维了。
看来是很久没敲竞赛代码了,很生疏了。其余几题明天再填~~~
在Alice和Bob⾯前的是两个骰⼦,上⾯分别写了六个数字。
Alice和Bob轮流丢掷骰⼦,Alice选择第⼀个骰⼦,⽽Bob选择第⼆个,如果 谁投掷出的数更⼤,谁就可以获胜。
现在给定这两个骰⼦上的6个数字,你需要回答是Alice获胜⼏率更⼤,还是 Bob获胜⼏率更⼤。(请注意获胜⼏率相同的情况)
输入描述:
输出描述:
View Code
看来是很久没敲竞赛代码了,很生疏了。其余几题明天再填~~~
在Alice和Bob⾯前的是两个骰⼦,上⾯分别写了六个数字。
Alice和Bob轮流丢掷骰⼦,Alice选择第⼀个骰⼦,⽽Bob选择第⼆个,如果 谁投掷出的数更⼤,谁就可以获胜。
现在给定这两个骰⼦上的6个数字,你需要回答是Alice获胜⼏率更⼤,还是 Bob获胜⼏率更⼤。(请注意获胜⼏率相同的情况)
输入描述:
第⼀⾏⼀个数T,表⽰数据个数。 接下来的每⼀组数据⼀共有2⾏,每⼀⾏有6个正整数,第⼀⾏是第⼀个骰 ⼦上的6个数,第⼆⾏是第⼆个骰⼦上的6个数。
输出描述:
输出T⾏,每⾏⼀个字符串。 如果Alice获胜⼏率更⼤,你需要输出Alice; 如果Bob获胜⼏率更⼤,你需 要输出Bob;如果获胜⼏率⼀样⼤,你需要输出Tie.
#include <bits/stdc++.h> using namespace std; int c[305][305]; int d[305][305]; int main() { //freopen("in.txt","r",stdin); int n,m; scanf("%d%d",&n,&m); for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { scanf("%d",&c[i][j]); } sort(c[i]+1,c[i]+m+1); for(int j = 1; j <= m; j++) c[i][j] = c[i][j-1] + c[i][j]; } memset(d,0x3f3f3f3f,sizeof(d)); for(int i = 1; i <= n; i++) d[i][0] = 0; for(int j = 1; j <= m; j++) d[1][j] = j*j + c[1][j]; for(int i = 2; i <= n; i++) { for(int j = i; j <= i*m; j++) { d[i][j] = d[i-1][j]; if(j>=n*2) break; for(int k = 1; k <= m; k++) { if(j-k>=i-1) d[i][j] = min(d[i][j],(k*k+d[i-1][j-k]+c[i][k])); } } } int ans = 0x3f3f3f3f; //for(int j = n; j<= n*m; j++) ans = min(ans,d ); printf("%d\n",ans); return 0; }
View Code
相关文章推荐
- 牛客练习赛6 B题 点权和
- 牛客练习赛6 D 世界上最可爱的珂朵莉 贪心
- 牛客练习赛6 B 点权和 树点权和
- 牛客练习赛3 F 监视任务 每个区间K个 树状数组+贪心
- 牛客练习赛7 购物 DP 初始化问题
- 牛客练习赛7 B 购物(DP)
- 牛客练习赛8
- 牛客练习赛9 B 珂朵莉的值域连续段
- 牛客练习赛10 B栈和排序【思维】
- 牛客网NowCoder 牛客练习赛11-A.假的线段树 D. 求距离
- 牛客练习赛12 B题
- 牛客练习赛13 D-幸运数字IV(逆康托展开)
- 牛客练习赛14-D比较月亮的大小
- 牛客练习赛25 C 再编号
- 牛客练习赛6 B题 点权和
- 牛客练习赛6 D 世界上最可爱的珂朵莉 贪心
- 牛客练习赛6 B 点权和 树点权和
- 牛客练习赛3 F 监视任务 每个区间K个 树状数组+贪心
- 牛客练习赛7 购物 DP 初始化问题
- 牛客练习赛7E 珂朵莉的数列