A.Secret of Chololate Poles
题意:白黑两种巧克力要相间放置在容器中,白的只能每次放1,黑的可以每次放1或者k。要求第一个和最后一个必须是黑的。问在总数不超过n的情况下有多少种放置方法。
题解:DP,dp[i][j]表示高度为i,最上面颜色为j的方案数。0代表黑色1代表白色。
状态转移方程dp[i+1][0]+=dp[i][1];dp[i+1][1]+=dp[i][0];dp[i+k][0]+=dp[i][1],要开long long。
#include
#include
#include
#include
#include
#include
B. Parallel Lines
题意:平面上给出2n个点,将这些点两两相连,问最多能产生多少对平行线。
题解:枚举所有的两两组合的时间复杂度是O(15!!*16*16),可以接受。枚举时为将时间复杂度从O(16!)降至O(15!!),成对枚举的第一个数只选用最小的一种即可。
#include
#include
#include
#include
#include
#include
C. Medical Checkup
题意:有n个人依次进行检查,第i个人进行每项检查所需的时间都是h[i]。问在t时刻每个人正在进行或等待第几项检查。
题解:在进行第一项检查前,需要等待前面的所有人检查完毕。而进行后面的项目时只需等待前面一个人检查完即可。因此第一次检查的实际用时就是h[i]的前缀和sum[i],而后面各项检查的实际用时w[i]=max(w[i-1],h[i]),即如果前面一个人比后面的慢,就可以将这二者合并,此时后面人的等待时间必然是w[i-1]。最后的结果是(t-sum[i])/w[i]+2。
#include
#include
#include
#include
#include
#include