关闭
当前搜索:

[CF891E]Lust

题目大意一个序列a,做k次下列操作: 1、随机一个下标x,答案加上Πni=1,i!=xai\Pi_{i=1,i!=x}^na_i 2、将axa_x减一。 求答案的期望。做法设bib_i表示最终aia_i减少了多少次。 答案是Πni=1ai−Πni=1(ai−bi)\Pi_{i=1}^na_i-\Pi_{i=1}^n(a_i-b_i) E(Πni=1ai−Πni=1(ai−bi))=Πni=...
阅读(246) 评论(0)

[UOJ#214]合唱队形

题目大意有n个人每个人有一个字符集初始为空。 有tot个事件,每个事件形如在第ai个人的字符集里放了bi这个小写字母。 每个时刻等概率发生一个事件。 有一个长度为m的字符串s。某个时刻如果存在编号连续的m个人,按从小到大的顺序发现对于第i个人字符集里都有si,那么则胜利。 问胜利的期望时间,要求判断无解,答案在模意义下进行。容斥设f(i)f(i)表示时刻i还没有胜利的概率。 答案是∑i>=...
阅读(193) 评论(0)

[arc075f]Mirrored

题目大意rev(n)为n翻转后的十进制数(从第一个非0位往后翻转)。 有多少n满足rev(n)=n+d。做法如果d末尾有0,显然那几位可以任意填(只要不造成前导0),先剔除掉。 然后就可以暴力枚举一半的数字并判断。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std...
阅读(78) 评论(0)

[agc011e]Increasing Numbers

前言1min了我还不会一点思路都没有这正常? orz题解。题意把大整数n拆成若干个上升数之和,最小化上升数的个数。 上升数即从最高位往最低位是一个不下降的序列。做法发现任意上升数能表示成全1数的和。 如果你允许0的存在,那么每个上升数都能被拆成9个全1数的和。 全1数的位数假如是k,可以表示成10k+1−19\frac{10^{k+1}-1}{9} 刚好0是-1位,代入该式子也成立。 现...
阅读(181) 评论(0)

[agc015f]Kenus the Ancient Greek

前言结论题我只能orz。 题解错了很不舒服。题意找到(n,m)以内点对欧几里得步数最大的点对个数。做法设f(a,b)表示欧几里得步数。 我们先设斐波那契数F0=1,F1=1,Fi+2=Fi+1+FiF_0=1,F_1=1,F_{i+2}=F_{i+1}+F_i 容易发现f(Fk,Fk+1)=kf(F_k,F_{k+1})=k。 结论一:如果f(x,y)=kf(x,y)=k,且x<yx<y,则...
阅读(157) 评论(0)

通信

题目大意在树上随机选一个序号区间的点,求构成的虚树大小期望(类似这个意思,其实是2*虚树大小-2)做法可以想到枚举区间右端点,每个节点记录cnt表示存在多少k使得[k,i]构成虚树包含自己(i是当前右端),然后每次统计答案与修改cnt复杂度与树高有关。 这个暴力可以树剖优化,但数据随机所以暴力跑过去了。#include #include #define fo(...
阅读(118) 评论(0)

Create

题目大意一个序列,有很多询问,每个询问要问区间>=x的数的个数。 现有若干修改操作,区间赋值,每次修改后请你将所有询问得到的答案和输出。颜色段均摊分析颜色段! 可以用set维护颜色段。 然后只需要考虑一个区间全部由x变成y产生代价。 先把询问按x排序做可持久化线段树,然后就很好做。#pragma GCC optimize(2) #include #include<algori...
阅读(126) 评论(0)

神奇的玩具

题意一副无向图,第i条边连接ai和bi。现在你需要选择恰好k个点,对于第i条边,你必须让ai和bi至少一个被选择,如果ai被选择,付出pi的代价,否则付出qi的代价(pi<=qi),求最小代价。搜索可以发现pi是必然代价,qi-pi就是附加代价。 于是产不产生代价只与ai是否没有被选,这方便我们加上最优性剪枝。 一个不选会导致一堆必选。 判掉度数为0和自环,我们可以发现T(n)<=T(n-1)...
阅读(127) 评论(0)

[bzoj4849]Mole Tunnels

题目描述鼹鼠们在底下开凿了n个洞,由n-1条隧道连接,对于任意的i>1,第i个洞都会和第i/2(取下整)个洞间有一条隧 道,第i个洞内还有ci个食物能供最多ci只鼹鼠吃。一共有m只鼹鼠,第i只鼹鼠住在第pi个洞内,一天早晨,前k只 鼹鼠醒来了,而后n-k只鼹鼠均在睡觉,前k只鼹鼠就开始觅食,最终他们都会到达某一个洞,使得所有洞的ci均大 于等于该洞内醒着的鼹鼠个数,而且要求鼹鼠行动路径总长度最...
阅读(207) 评论(0)

三明治

题目描述做法对于每个格子(i,j)设L(i,j)表示先吃靠左边界的格子至少要吃多少格子,R意义类似。 然后你发现L(i,j)>=L(i,j-1)。 于是一行一行做,每行才清空一次标记数组。#include #include #define fo(i,a,b) for(i=a;i=b...
阅读(91) 评论(0)

[LibreOJ β Round]ZQC的树列

题目描述见LOJ。做法显然对于每一段数字,要么可选要么必选。 假如有t个,若必选,则方案为2^t-1,否则为2^t。 因此只有1、2、3就可以构造所有情况。 尝试把n拆分成2^t-1以及2^t的乘积。 这个用dfs即可。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++...
阅读(293) 评论(0)

[CF538D]Weird Chess

题目大意懒得写做法暴力判断哪些走法要封死。 剩余走法都可以当做有效,判断每个应该攻击的位置是否被攻击了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=100+10,mx=50; bool pd[maxn][maxn],bz[ma...
阅读(107) 评论(0)

[CF538C]Tourist's Notes

题目大意懒得写做法每一段内求个最高,列不等式。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=100000+10; int d[maxn],h[maxn]; int i,j,k,l,t,n,m,x,y,ans; bool czy;...
阅读(101) 评论(0)

[CF538B]Quasi Binary

题目大意懒得写做法这样的数只有2^6个。 因此暴力DP#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10...
阅读(108) 评论(0)

[CF538A]Cutting Banner

题目大意懒得写做法枚举分割位置暴力判#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=100+10; char s[maxn]...
阅读(146) 评论(0)
57条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:294900次
    • 积分:11130
    • 等级:
    • 排名:第1596名
    • 原创:801篇
    • 转载:4篇
    • 译文:0篇
    • 评论:197条
    最新评论
    文章分类