不充钱,你怎么AC?
题目:http://codevs.cn/problem/1092/
嗯,这道题有一定难度啊,需要先用扩展欧几里得算法求出逆元,然后按照大小构一颗带边权为小时数的树
树链剖分后在树上DP,设f[i][j]为以 i 为根 j 为子树的最小的那一天
注意DP方程是有单调性的,可以用动态仙人掌维护,最后答案容斥一下即可
目测代码量8k+
#include<cstdio>
#include<algorithm>
using namespace std; int main()
{
int x,a,b,m;
for (int i=;i<;i++)
{
scanf("%d%d",&x,&a);
if ((x+=a)>m)
{
m=x;
b=i;
}
}
printf("%d\n",b);
return ;
}