08 2019 档案
摘要:题意 一个人初始在1级,从i级升级到i+1级需要ai的费用,有pi的概率升级成功,(1 pi)的概率升级失败降到xi级。共有n(5e5)级,q(5e5)询问,每组询问查询从L级升到R级花费的期望。 "题目连接" 思路 这个题关键是期望是可以相减的,也就是说,E(L,R)=E(1,R) E(1,L)。
阅读全文
摘要:题意 两个人做游戏,先手有n张牌,后手有m张牌,每张牌有一种颜色,两人轮流出牌,当一个人出了一种颜色的牌之后,另一个人就不能出相同颜色的牌了,如果一个人无牌可出则输掉游戏。分别给出n张牌和m张牌的颜色,求赢家。 "题目连接" 思路 对于一个人有而另一个人没有的颜色可以不予考虑。到此为止, 问题转换成
阅读全文
摘要:题意 n个题一共m分,出题人可以任意分配每个题的分数,对于x分的题,需要复习x+1分钟,问如果能做出k道题最少需要几分钟。 思路 利用田忌赛马的思路,出题人至少要赢下n k+1局,最优策略是先用0分的题和最大的k 1个数比较,集中兵力赢下n k+1局,作为做题人,我们如果想要阻止出题人,需要在最少的
阅读全文
摘要:题意 给三个数a,b,c,问是否存在。 "题目链接" 思路 将a,b,c末尾的零去掉得到A,B,C,考虑几种情况,其中(n,m,k 0)。 1. 不合法 2. 不合法 3. $A 10^n
阅读全文
摘要:题意 给一棵树,每个点有权值a和b,两人博弈,先手选一个点开始走,两人轮流走相邻且没走过的点直至无法再走。每到一个点,先手得a分,后手得b分。求两人都使用最优策略的情况下,两人分数差。 "题目链接" 思路 树形dp,求出每个点先手选择它,走到它子树的叶子节点的最大次大值,用f[x][0]表示,以及每
阅读全文
摘要:题意 一共有n( using namespace std; typedef long long LL; const int maxn = 1000000+10; int n; int a[maxn],b[maxn]; int main() { int T; scanf("%d",&T); while
阅读全文
摘要:题意 给出n( using namespace std; typedef long long LL; const int maxn = 3000000+10; struct node { LL x,y; int c; }; int n,na,nb; node a[maxn],b[maxn],tmp[
阅读全文
摘要:题意 给一棵树,如果能选出两条没有交点的路径使得一条点数为x,一条点数为y,则(x,y)为合法对,求有多少合法对。 "题目链接" 思路 其实我们需要求出对于每一个x其对应的最长的y,这样(x,1)....(x,y)都合法,也就是说x对答案贡献是y。因此我们讨论几种情况来更新每一个x的最大y。对于一棵
阅读全文
摘要:题意 给无限个10,20,50,100的硬币,以及n( using namespace std; int n; int a[105],b[105]; int f[305]; int solve(int x,int y,int z) { int num=0; for (int i=1;i=0;j =1
阅读全文
摘要:题意 给定一个字符串,两个人轮流操作,可以选择a b,b c,...z a,也可以选择停止游戏。先手希望最后字符串字典序最小,后手希望其最大,问游戏结束时的字符串。 "题目链接" 思路 对于一般情况,先手只有选择将第一个字符由 ’z‘ 变成 ’a‘,或者停止游戏。但是若字符串开头有连续一段 ’y‘
阅读全文
摘要:题意 给一个n m的矩形,n,m 1e9。给k(1e5)个点坐标(x,y),每个点可向上下左右发出射线,问将矩形分成几份。 "题目连接" 思路 观察发现分成的块数等于交点数加一。离散化上下分别考虑,对于下垂下来的线按照下垂点从下向上插入树状数组,同时从下向上查询水平射线,对于向左的射线,查询小于等于
阅读全文