A - Drinks Choosing
题意:
n个学生,k种饮料,有t=n/2(向上取整)对饮料,每个学生有一个喜欢的饮料类型,但是饮料只能一对一对的发,每一类饮料的数量自己决定,问最多有多少个学生能拿到喜欢的饮料。
分析:
统计每个学生喜欢饮料的类型,存入数组vis中,遍历vis,将vis[i]/2*2加入到sum中,t减去vis[i]/2,再将vis%2,最后再遍历一边vis,让剩下的单数个也分一下。
代码:
B - Sport Mafia
题意:
有两个选择,每次吃一颗糖,或者放入比上次放的多一颗糖,如果没有糖,就只能够放,给总共的步数n和最后糖果的数量k,问吃了多少糖。
分析:
可以直接模拟一下,只有比k小,就一直放,直到比k大,就开始吃,如果小了,再继续放,直到n为0。
代码:
C-Basketball Exercise
题意:
总共两行,每行输入n个数,取一个数之后不能再取和他相邻的数(对角可以取),
求最大能取多少。
分析:
dp题,状态转移方程:dp[0][i]=max( dp[0][i] , dp[1][i-1]+a[i] );
dp[1][i]=max( dp[1][i] , dp[0][i-1]+b[i] );
最后输出两个中的最大值。
代码: