思维好题
jerome_wei
OIer
展开
-
[bzoj4446]小凸玩密室
[bzoj4446]小凸玩密室Description小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡。点亮所有灯泡即可逃出密室。每个灯泡有个权值Ai,每条边也有个权值bi。点亮第1个灯泡不需要花费,之后每点亮1个新的灯泡V的花费,等于上一个被点亮的灯泡U到这个点V的距离Du,v,乘以这个点的权值Av。在点灯的过程中,要保证任意时刻所有被点亮的灯...原创 2018-10-12 20:10:52 · 313 阅读 · 0 评论 -
AGC 032 F 简要题解
AGC 032 F 简要题解太神了这题。。。首先游戏可以直接等价成每次插入三类边(各120度),然后最后我们可以直接当成在第一个的一个1/3扇形里面找一段最小的段左右颜色不同。这里可以直接dp出有多少段颜色不同的方案,然后易得 i段的期望长度和是i/n(每段等价)。然后我们需要找k段分一个长度len最小长度的期望。这个期望是len/(k^2)。证明是(此处认为len=1...原创 2019-03-26 19:28:52 · 543 阅读 · 0 评论 -
[bzoj4664] Count
[bzoj4664] Count好题。我们考虑从小到大插入。在中间插入的时候,新增加的贡献就是小的那个数与当前的数的差*2,旁边的话就是*1那么我们考虑把这个差分成多次计算可以这样来:每次操作时只要中间还有没有插入的位置,那么就可以把贡献加上上一次数的差。那我们就可以记有多少段然后记左右端点每次有没有被占领,然后就可以直接DP了。代码#include<bits...原创 2019-02-24 19:29:12 · 353 阅读 · 0 评论 -
Codeforces 708D - Incorrect Flow
Codeforces 708D - Incorrect Flow链接 题目大意:给一个不对的网络流,每次你可以增加/减少一条边的cap或者flow,要求最后网络流是一个可行流即:对于每个点进来的流量和出去的流量相同(S,T除外)对于每条边流量小于等于cap大于等于0求最少操作次数n,m 100参考 志愿者招募 , 考虑原图相当于一堆等式(每个点一个) ,然后...原创 2019-02-17 19:31:48 · 230 阅读 · 0 评论 -
[bzoj4671]异或图
[bzoj4671]异或图斯特林反演+线性基首先容斥f(x)f(x)f(x)表示至少x个联通块的个数,g(x)g(x)g(x)表示恰好x个联通块的个数f[x]=∑i=xN\{ix\}g[i]f[x]=\sum_{i=x}^{N} { i \brace x }g[i] f[x]=i=x∑N{xi}g[i]斯特林反演g[x]=∑i=xN[xi]f(i)g[x]=\sum_{i...原创 2019-02-10 15:13:50 · 281 阅读 · 0 评论 -
[bzoj1566]管道取珠
[bzoj1566]管道取珠貌似求 i 次方的问题都有一个套路就是将原操作序列复制一遍,然后i个操作中等价的数量就是原问题的答案了。然后这题就没了。代码#include<bits/stdc++.h>using namespace std;const int N=503;int f[2][N][N];char A[N],B[N];int n,m;const...原创 2019-01-04 20:43:59 · 298 阅读 · 0 评论 -
[bzoj 3672]购票
[bzoj 3672]购票如果是一条链的话是分治然后斜率优化,然后一颗树的情况就换成点分治就行了。#include<bits/stdc++.h>using namespace std;const int N=5e5+5;const int INF=0x3f3f3f3f;const long long INF_ll=1000000000000000000;type...原创 2018-12-30 17:29:42 · 177 阅读 · 0 评论 -
[bzoj5340]假面
[bzoj5340]假面全部存概率,第一问直接更新,第二问存 i 个人存活的概率,这个可以用多项式除二项式优化到 n^2然后复杂度就对了。代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=205;int m[N],n;const int mod=998...原创 2018-12-06 19:44:26 · 242 阅读 · 0 评论 -
[loj2537] Minimax
[loj2537] Minimax用线段树合并优化dp做到nlogn代码#include<bits/stdc++.h>using namespace std;const int N=3e5+5;const int mod=998244353;typedef long long ll;inline int add(int a,int b){a+=b;return...原创 2018-12-12 21:29:47 · 219 阅读 · 0 评论 -
[bzoj4657]tower
[bzoj4657]tower建图真的学不来。。首先我们考虑把题目转化成最小割。然后这个题有些性质就是每个点最多有两种被选中的方案,然后我们想最小割的话就应该设成负数的流量(我们在这里强制加一个INF什么的就行了)。然后关于只能选一个的限制我们参考切糕。然后就有了建图,行列分别连S,T然后中间连INF的限制就行了。详见代码代码#include<bits/std...原创 2018-11-24 20:21:20 · 203 阅读 · 0 评论 -
[bzoj4010]菜肴制作
[bzoj4010]菜肴制作大意是让你找到一个拓扑序然后保证第i个数尽量靠前。显然每次都选最小的点是不成立的(样例都过不了)然而我们可以考虑建反图,然后这个拓扑序反过来就是原图的一个拓扑序。发现题意就是让你尽量使反过来的拓扑序字典序尽量大。我们在反图上跑toposort,同时把队列换成优先队列,优先弹出权值大的点,就是答案了。代码#include<bits/s...原创 2018-11-05 19:12:35 · 209 阅读 · 0 评论 -
[bzoj3195] 奇怪的道路
[bzoj3195] 奇怪的道路参考bzoj1226,我们状压之后k个人的状态以及当前这个人的状态。需要注意的是两条边之间可以有多条边,我们这个时候枚举每条边选的奇偶性,然后预处理n条边中每个边选偶数次选k条的方案数即可转移转移见代码代码#include<bits/stdc++.h>using namespace std;const int N=40,M=40,...原创 2018-11-05 11:00:26 · 291 阅读 · 0 评论 -
[bzoj4735] 你的生命已如风中残烛
[bzoj4735] 你的生命已如风中残烛我的生命大概真的如风中残烛了。什么神仙玩意、考虑每一个排列,每个数-1 不难发现要求前缀和始终大于等于0。 然后考虑卡特兰数就GG了。我们考虑在最后再加一个-1,我们就是要求除了最后一个位置之外,每个前缀和都是等于0的我们把他接成一个环,然后我们可以发现环形上有一个性质:每个环有且仅有一种割断方案使其有效。然后我们判重就是每个...原创 2018-11-07 17:24:36 · 238 阅读 · 0 评论 -
[bzoj4289] PA2012 Tax
[bzoj4289] PA2012 Tax暴力都会吧,然后愉快的炸空间。我们考虑怎么优化这个东西。大概就是把边看成点,然后对于原来的一个点连的边按照权值排序,每条与和他(排序后)相邻的边连起来,边权就是增加的值(具体看代码吧),然后就是最短路了。代码#include<bits/stdc++.h>using namespace std;const int N=...原创 2018-10-29 21:29:10 · 146 阅读 · 0 评论 -
[2734]集合选数
[2734]集合选数不太知道怎么想出来这种东西啊我们考虑这样的矩阵:x/y 1 2 4 8 16 32 ... 1 1*1 1*2 1*4 1*8 1*16 1*32 ... 3 3*1 3*2 3*4 ... ... ... ... 9 9*1 ... ... ... ... ... ....原创 2018-10-23 20:15:25 · 186 阅读 · 0 评论 -
[bzoj1415] 聪聪和可可
[bzoj1415] 聪聪和可可 对于任意一对位置x,y我们可以找到聪聪的行走方案。(这个可以BFS跑)然后我们用f[x,y]表示聪聪在x,可可在y抓住的期望时间,于是转移方程是:if(x==y)f[x][y]=0,if(x走两步能到y)f[x][y]=1,else f[x][y]=(sigma(f[x_nxtpos][y_nxtpos])+1)/(d[y]+...原创 2018-10-17 20:53:47 · 151 阅读 · 0 评论 -
[bzoj1190]梦幻岛宝珠
[bzoj1190]梦幻岛宝珠题意:给你N颗宝石,每颗宝石都有重量和价值。要你从这些宝石中选取一些宝石,保证总重量不超过W,输出最大的总价值。数据范围:N<=100;W<=2^30,并且保证每颗宝石的重量符合a*2^b(a<=10;b<=30)我们不难观察到a*2^b的范围十分特殊,所以思考如何在此基础上做优化同时,我们观察到N与a很小,相乘也只有1000...原创 2018-10-10 23:58:12 · 326 阅读 · 0 评论 -
bzoj 4766 文艺计算姬 【关于一个结论的证明】
bzoj 4766 文艺计算姬题意: 给你n+m个带标号的点,要求左边前n个右边后m个点的二分图,是n+m个点的树的个数。考虑二分图的性质,因为左右的度数和相等,所以容易求出prufer序列中左边出现m-1次,右边n-1次。然后考虑左右的一个序列,左边的方案是n^(m-1) , 右边的方案是 m^(n-1)。于是我们考虑这个序列会生成什么样的树。如果确定了当前的状态(比如初...原创 2019-04-21 16:05:27 · 319 阅读 · 1 评论