博客园 首页 私信博主 显示目录 隐藏目录 管理 动画
摘要: "题目链接" 日常水题 ~~还是忍不住吐槽这题奇怪的评价~~ cpp include include include define gc() getchar() // define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?E 阅读全文
posted @ 2018-02-28 08:30 SovietPower 阅读(202) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 二维莫队,按x,y坐标一起分块.(x,y)的所属的块为 x/sq(n) sq(m) + y/sq(m) 排序时按照(左下点所在块,右上点的标号)排序 排序后 先得出一个询问的答案,然后利用上一个询问的矩形与当前矩形位置关系更新答案 转移真的麻烦。。为了避免算重 一定要加个vis[][] 阅读全文
posted @ 2018-02-28 08:09 SovietPower 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 给定长为$n$的序列,$m$次求区间众数,强制在线。 $n\leq40000,m\leq50000$。 阅读全文
posted @ 2018-02-27 20:03 SovietPower 阅读(179) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 长度为n的数列,m次询问,每次询问一段区间最大的 $A_i tm_i$ (重要度 出现次数) $Solution$ 好像可以用莫队做,但是取max的操作普通莫队是不好撤销的(Subd部分) 于是可以用不带删除的莫队: 回滚莫队 询问依旧是按(左端点所在块,右 阅读全文
posted @ 2018-02-27 15:50 SovietPower 阅读(303) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 大数除法是很麻烦的,考虑能不能将其条件化简 一段区间[l,r]|p,即num[l,r]|p,类似前缀,记后缀suf[i]表示[i,n]的这段区间代表的数字 于是有 suf[l] suf[r+1]|p (suf[l] suf[r+1])%p = 0 suf[l] ≡suf[r+1] (m 阅读全文
posted @ 2018-02-27 11:08 SovietPower 阅读(190) 评论(0) 推荐(1) 编辑
摘要: "题目链接" (同上一题苹果树) 为什么第10个点T了一晚上。。 下面那个却AC了?跑的也不慢。 TLE: cpp / 在DFS序做莫队 当一个点不是另一个点的LCA时,需要加上它们LCA的贡献 / include include include include define gc() getcha 阅读全文
posted @ 2018-02-27 07:37 SovietPower 阅读(174) 评论(0) 推荐(0) 编辑
摘要: "题面链接" cpp / 代码正确性不保证。。(不过交了SPOJ没WA T了最后一个点) 在DFS序做莫队 当一个点不是另一个点的LCA时,需要加上它们LCA的贡献 / include include include include define gc() getchar() const int N 阅读全文
posted @ 2018-02-26 21:14 SovietPower 阅读(160) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 比较水的题 然而。。 首先可以考虑DFS 每B个分一个块,但是这样链底不会和上边相连 于是考虑从底下开始分,即在DFS完一个点时才将其加入栈中;当子树size==B时出栈 最后在根节点可能会剩下一些未分配的点,这些点数当然 include define gc() getchar() c 阅读全文
posted @ 2018-02-26 19:40 SovietPower 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 两人轮流走,每次可以从盒子(容量给定)中取出任意堆石子加入Nim游戏,或是拿走任意一堆中正整数个石子。无法操作的人输。10组数据。 阅读全文
posted @ 2018-02-26 11:10 SovietPower 阅读(252) 评论(2) 推荐(1) 编辑
摘要: 1堆石子有n个。两人轮流取。先取者第1次可以取任意多个,但不能全部取完。以后每次取的石子数不能超过上次取子数的2倍,取完者胜。问谁能赢。 阅读全文
posted @ 2018-02-26 09:35 SovietPower 阅读(307) 评论(0) 推荐(1) 编辑
摘要: 给定n棵"树","树"的节点可能"挂着"一个环,保证没有环相交,且与树只有一个公共点。 两人轮流从树上删边,删去一条边后,不与根相连的一部分会被移除。最后无法移动的人输。问谁能赢。 阅读全文
posted @ 2018-02-26 08:59 SovietPower 阅读(335) 评论(0) 推荐(1) 编辑
摘要: "题目链接" 一个很暴力的想法:每个点拆点,向不能同时存在的连边 但是这样边太多了,而且会有很多重复。~~我不会说我还写了还没过样例~~ 我们实际就是在做一个最大匹配。考虑原图,同在黄/红格里的骑士是互不攻击的,即不会连边。 那么拿这两部分建二分图,分别连向S,T。障碍直接不参与连边。这样边数也少 阅读全文
posted @ 2018-02-26 06:24 SovietPower 阅读(153) 评论(0) 推荐(1) 编辑
摘要: 有多堆石子, 每次可以将任意一堆拿走任意个或者将这一堆分成非空的两堆, 拿走最后一颗石子的人胜利。问谁会获得胜利。 阅读全文
posted @ 2018-02-25 21:04 SovietPower 阅读(220) 评论(1) 推荐(0) 编辑
摘要: 有一个一行n列的棋盘,每个人每次往上放一个棋子,将三个棋子连在一起的人赢。问是否有必胜策略。 阅读全文
posted @ 2018-02-25 20:29 SovietPower 阅读(187) 评论(0) 推荐(0) 编辑
摘要: "题目链接 洛谷" "COGS.24" 对于大的矩阵可以枚举;对于小的矩阵,需要在满足条件的区域求一个矩形和的最小值 预处理S2[i][j]表示以(i,j)为右下角的C$ $D的矩阵和, 然后对于求矩形区域的最小值,可以先将每行看做一个数列,对于每个点y,得到一个[y (B 3),y]的最小值 处理 阅读全文
posted @ 2018-02-25 19:10 SovietPower 阅读(216) 评论(0) 推荐(1) 编辑
摘要: "题目链接" Anti Nim游戏: 先手必胜当且仅当: 1.所有堆的石子数为1,且异或和为0 2.至少有一堆石子数 1,且异或和不为0 简要证明: 对于1:若异或和为1,则有奇数堆;异或和为0,则有偶数堆。比较显然。 对于2:(1)对于只有一堆石子数 1的情况(异或和一定不为0),先手可以操作这堆 阅读全文
posted @ 2018-02-25 08:59 SovietPower 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 给定一个集合S,每次只能拿S中某个元素个数的石子。每组数据有多组询问,询问给出m堆石子个数,问先手是否必胜。有多组数据。 阅读全文
posted @ 2018-02-25 08:29 SovietPower 阅读(151) 评论(0) 推荐(0) 编辑
摘要: "题目链接" cpp //求三堆石子的SG函数,异或起来就是整个游戏的SG值 include include const int N=1005; int n,m,p,cnt,F[N],sg[N+2]; bool vis[N+2]; void Init() { F[0]=F[1]=1; for(cnt 阅读全文
posted @ 2018-02-25 07:40 SovietPower 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 一个1~INF的坐标轴上有n个棋子,给定坐标Pi。棋子只能向左走,不能跨越棋子,且不能越界(<1)。两人每次可以将任意一个可移动的棋子向左移动一个单位。问先/后手会赢或是否无解。 阅读全文
posted @ 2018-02-24 21:35 SovietPower 阅读(243) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 后手必胜(先手必败,P position)当且仅当n堆石子数异或和为0。 首先0一定是P position, 假设a1^a2^a3^...^an=K 若K!=0,则一定可以找到一个ai,ai在K的最高位的1上为1,显然ai ai^K,那么可以把ai变成ai^K,局面就成了a1^a2^. 阅读全文
posted @ 2018-02-24 20:48 SovietPower 阅读(156) 评论(2) 推荐(0) 编辑
摘要: Tang,Jiang两人轮流写数,若A在写了X,则B只能写Y,满足1<=Y-X<=k。最先写数的T只能写[1,k]内的数。第一个写的数>=N的lose,问最后的winner。 阅读全文
posted @ 2018-02-24 19:32 SovietPower 阅读(203) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 一个国家有1~n座城市,其中一些城市之间可以修建高速公路(无自环和重边)。 求有多少种方案,选择修建一些高速公路,组成一个交通网络,使得任意两座城市之间恰好只有一条路径。 $Solution$ 生成树计数 直接上Matrix Tree 无解情况别忘了判 Ma 阅读全文
posted @ 2018-02-24 06:56 SovietPower 阅读(169) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值,求从起点1到点N的最小代价。起点的代价是离开起点的边的边权,终点的代价是进入终点的边的边权。 $Solution$ 最直接的方法是把每条边作为一个点,对于连接同一个点的两 阅读全文
posted @ 2018-02-23 21:59 SovietPower 阅读(196) 评论(2) 推荐(1) 编辑
摘要: "题目链接" $Description$ 每个点有费用si与价值pi,要求选一些带根的连通块,总大小为k,使得 $\frac{∑pi}{∑si}$ 最大 $Solution$ 01分数规划,然后dp,设f[i][j]表示i子树选j个的最大权值和,直接暴力背包转移即可 在枚举子节点选的数量时,假设x有 阅读全文
posted @ 2018-02-23 18:06 SovietPower 阅读(132) 评论(0) 推荐(0) 编辑
摘要: [TOC] Some Definations. DFST: 深度优先生成树 二分图 1. 若一个图不存在奇环,那么这是二分图。(二分图中的环只能是偶环,无奇环) 竞赛图 竞赛图: 每对顶点之间都有一条(有向)边相连的有向图。 性质: 1. 竞赛图一定存在哈密顿通路,强连通竞赛图一定存在哈密顿回路。 阅读全文
posted @ 2018-02-23 14:13 SovietPower 阅读(295) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-02-23 11:35 SovietPower 阅读(107) 评论(0) 推荐(1) 编辑
摘要: "题目链接" 嗯。。水题 洛谷这网络流二十四题的难度评价真神奇。。 cpp include include include include include define gc() getchar() const int N=206,M=15000,INF=0x3f3f3f3f; int n,m,sr 阅读全文
posted @ 2018-02-23 07:53 SovietPower 阅读(189) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 将n个村庄连成一棵树,村之间的距离为两村的欧几里得距离,村之间的花费为海拔z的差,求花费和与长度和的最小比值 $Solution$ 二分,假设mid为可行的某一生成树的解,则应有 $(∑cost)/(∑dis) = mid$ 变形得 $\sum(cost m 阅读全文
posted @ 2018-02-23 06:41 SovietPower 阅读(239) 评论(0) 推荐(0) 编辑
摘要: "题目链接" $Description$ 一条直线上有n个村庄,位置各不相同。选择p个村庄建邮局,求每个村庄到最近邮局的距离之和的最小值。 $Solution$ 先考虑在$[l,r]$建一个邮局,最优解肯定是建在中间。 这样$mid$两边对称,距离和是最小的;若建在$mid 1$,(假设$mid$与 阅读全文
posted @ 2018-02-22 20:31 SovietPower 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 给出平面上的$n$个点,满足$X_i$严格单增,$Y_i$严格单减。以$x$轴和$y$轴正方向作边,使这$n$个点构成一棵树,最小化树边边的总长。 阅读全文
posted @ 2018-02-22 17:28 SovietPower 阅读(259) 评论(0) 推荐(0) 编辑