noip训练
bluelanzhan
这个作者很懒,什么都没留下…
展开
-
JZOJ5400 Repulsed(树上dp+贪心)
对于一个点,它被它的k级父亲覆盖肯定是最优的。f[i][j] :i这个点的子树中和它距离为j的待灭点数。g[i][j]:i这个点的子树中和它距离为j的灭火器能灭点数。f[i][k]:一定是在i这里灭是最优的,因为相距k.对于与i相距z的的灭火器(所在点)d2和与i相距w的待灭点d1,如果z + w = k或z + w = k-1(如果再往上走d1,d2就相距k+1就灭不到了)。...原创 2018-11-08 16:43:38 · 335 阅读 · 0 评论 -
Dinner (二分+二分+贪心)//其实正解是倍增
Dinner【问题描述】 清儿今天请好朋友们吃饭,一共N个人坐在坐在圆桌旁。 吃饭的第一步当然是点餐了。服务员拿来了M份菜单。第i个人阅读菜单并点出自己喜欢的菜需要花费时间T[i]。 当一个人点完菜之后,就会把菜单传到他右手边的第一个人。 M份菜单是同时发出的,每个菜单只能同时被一个人阅读。 清儿希望知道如何分发菜单,才能让点餐的总时间花费最少呢?【输入格式】 输入文件名为dinner.i...原创 2018-11-06 16:28:34 · 753 阅读 · 0 评论 -
count
count【问题描述】李华终于逃离了无尽的英语作文, 重获自由的他对一棵树产生了兴趣。首先,他想知道一棵树是否能分成大小相同的几块(即切掉一些边,使得每个连通块的点数相同)。然后,他觉得这个问题过于简单,于是他想知道一共有多少种方案可以把这棵树分成大小相同的几块。然后他发现自己不会了,于是向聪明的你求助。【输入格式】第一行一个数,表示数的大小。第二行至第N行,每行两个数x,y表示x和...原创 2018-11-06 16:14:29 · 322 阅读 · 0 评论 -
便(带权并查集)( AT2033 マス目と整数 / Grid and Integers)
【输出格式】T行.第i行是第i组数据的答案.有合法方案时输出一行Yes,没有时输出一行No.62 2 31 1 01 2 102 1 202 3 51 1 01 2 101 3 202 1 302 3 402 2 31 1 201 2 102 1 03 3 41 1 01 3 103 1 103 3 202 2 41 1 01 2 102 1...原创 2018-11-01 23:58:54 · 339 阅读 · 0 评论 -
引水入城(记忆化搜索+区间完全覆盖问题)
每个第一行的城市,在最后一列能影响到的一定是一段连续区间。如果不连续,假设是两段区间,那么两段区间中肯定不能被其他第一行的城市影响到,如果影响到,如下图如果蓝色和红色相交,那么蓝色一定可以更新到红色的。所以假设是两段区间,那么两段区间中肯定不能被其他第一行的城市影响到,而这种情况就是题目所谓不合法情况。那么我们就记忆化搜索,把第一行每个城市能影响到的最后一行的连续区间大小处理出来。...原创 2018-11-01 23:26:49 · 240 阅读 · 0 评论 -
随 (rand)(巧用快速幂)(期望dp)
【题目描述】给出n个正整数a1,a2…an和一个质数mod.一个变量x初始为1.进行m次操作.每次在n个数中随机选一个ai,然后x=x*ai%mod.问m次操作之后x的取值的期望.答案一定可以表示成a/b的精确分数形式.a和b可能很大,所以只需要输出a*(b^(10^9+5))模10^9+7的结果.【输入格式】第一行三个整数n,m,mod.接下来一行n个空格隔开的正整数a1,a2…an...原创 2018-11-01 15:59:27 · 366 阅读 · 0 评论 -
你相信引力吗?(一道单调栈的题)
这道题我想了很久,没想出来。首先我们要把这个环,找一个断点,给断成序列。当然是从最大的点断开是最好的,不会有两个点(i,j),如下图,蓝色一段是不可能使(i,j)危险的,因为i,j 小于最大值。使i,j成为危险的只有可能i到j中没有严格大于i和j的。这样,我们先不考虑第一个点为右端点的情况,正着跑一遍单调栈(单调递减),假设i要进栈,如果栈顶小于i ,那么弹栈,i和栈顶...原创 2018-10-30 20:23:05 · 2952 阅读 · 0 评论 -
停不下来的团长奥尔加(一道递推题,思维很好啊....)
停不下来的团长奥尔加【题目描述】奥尔加在一个长度为n+1的街道上跑着,初始,奥尔加在位置1上,他想要跑到 位置n+1去保护团员ride on。空旷的大路上难免会有暗杀者,当奥尔加走到位置i时,会有暗杀者出现,这时奥 尔加只能回到pi(1≤pi≤i)位置上,但在下次到达i的时候,暗杀者就不会出现(如果再到 达i还会有暗杀者),换言之,当奥尔加此时是第奇数次到达i的时候,下一步会走到pi, 第偶...原创 2018-10-27 22:41:45 · 3218 阅读 · 3 评论 -
树上路径(点分治板子题)
树上路径!!!点分治处理。(就是在树上分治处理,把树分成小树,再分成更小的树处理)找最小的满足>=S 并且<=E的路径。假设从随便一个点开始dfs,复杂度o(n);然而从重心开始dfs,复杂度为O(logn);重心:删掉这个点以后,剩余的森林的最大的size最小的点。注意一下:合并路径时,两条路径不能有相同的祖先(处理某点,路径必须是过这个点,且路径的两端点不在...原创 2018-10-30 17:43:36 · 519 阅读 · 0 评论 -
NOIP模拟题 Day2 化简(大模拟)
两个栈,一个符号栈(zhan1),一个多项式栈(zhan)。zhan[i][j]:表示第i个多项式第j次项的系数。 遇到')',把它到上一个‘(’之间的‘+’,‘-’,‘*‘’全都处理出来。优先级:'*' >'+','-' >'(',')' #include<iostream>#include<cstdio>#include&l...原创 2018-11-09 15:08:17 · 309 阅读 · 0 评论 -
达哥的飞(fly)题(树状数组)(非常玄妙)
郭神有n条位于第一象限内的线段,给出每条线段与x轴和y轴交点的坐标,显然这样就可以唯一确定每一条线段.n条线段和y轴交点的纵坐标分别为1,2,3,4...n.我们记和y轴交点纵坐标为i的线段和x轴交点的横坐标为x[i]+1,x[i]按这样的方式生成:x[1]由输入给出.x[i]=(x[i-1]+a) % mod,2<=i<=n.即:如果x[3]=4,则与y轴交点纵坐标为3的抛物...原创 2018-11-04 10:32:47 · 277 阅读 · 0 评论 -
noip2013 华容道(bfs + spfa)
//拖了两周,终于把这道题A了//没事千万不要在bfs和spfa里memset(打板子打习惯了memset),我就t了好久,泪流满面。还有一定要把哪个是目标,那个是起点的坐标看清楚啊,我调了1个小时才看出来。。。蒟蒻的我不想说什么了。。。。这道题求每次游戏所需要的最少时间,可以考虑建图跑spfa求最短路。怎么建?//不建让空格到处乱跑,bfs到指定初始棋子移到了目标位置。就停止,这样做...原创 2018-11-04 14:45:41 · 229 阅读 · 0 评论 -
noi2009 管道取珠(神dp...)
管道取珠是小X很喜欢的一款游戏。在本题中,我们将考虑该游戏的一个简单改版。游戏画面如图1所示:(图1)游戏初始时,左侧上下两个管道分别有一定数量的小球(有深色球和浅色球两种类型),而右侧输出管道为空。每一次操作,可以从左侧选择一个管道,并将该管道中最右侧的球推入右边输出管道。例如:我们首先从下管道中移一个球到输出管道中,将得到图2所示的情况。(图2)假设上管道中有n个球, 下管...原创 2018-11-05 22:11:54 · 236 阅读 · 0 评论 -
[USACO09MAR]清理Cleaning Up(dp)
题意翻译很久很久以前,约翰只会做一种食品;而现在约翰能给他的NNN (1≤N≤40000)(1 \leq N \leq 40000)(1≤N≤40000)头奶牛供应MMM (1≤M≤N)(1 \leq M \leq N)(1≤M≤N)种不同的食品。但奶牛们非常挑剔,iii号奶牛只吃食品PiP_iPi (1≤Pi≤M)(1 \leq P_i \leq M) (1≤Pi≤M)每天,奶牛们按...原创 2018-11-05 19:47:50 · 362 阅读 · 0 评论 -
cross(idy002的神奇并查集)
纵坐标相同的点连边,横坐标相同点点连边。不在同一个联通块的点互不影响,所以可以用乘法原理把每一块的答案乘起来。对于一块,有多少个不同的x就有多少条与y轴平行的直线,记为x条;有多少个不同的y就有多少条与x轴平行的直线,记为y条。所以总直线数是x+y条。每条直线可以选或不选,所以每个联通块的答案为2^(x+y).但是对于边数比点数小的联通块来说(边数=点数-1),x+y = 点数+1,不...原创 2018-11-07 21:05:49 · 237 阅读 · 0 评论 -
星际旅行(思维很好的欧拉路)
把每条边拆成两条。欧拉(回)路,只有0或2两个奇点。因为2条边经过一次,m-2条边经过两次,可以考虑删除两条边,使剩下的图有0或2两个奇点。所以这两条边要么是任意两个自环,要么是有一个公共端点的两条边,要么是一个自环和任意一条边。我们要判断,整个图联不联通,因为要经过m条边。然而我们判断所有边联通的点联不联通,不是判断所有点联不联通。如下图,所有点不联通,但是能找到航线。#inc...原创 2018-11-07 14:58:32 · 432 阅读 · 0 评论 -
cut砍树。
#include<bits/stdc++.h>using namespace std;const int N = 105;const int lim=31623;int cnt;long long n,k, p[2*N*lim], a[N], ans;int main(){ scanf("%lld%lld",&n,&k); fo...原创 2018-11-07 14:24:13 · 376 阅读 · 0 评论 -
2015 noip 运输计划(lca +二分+树上差分)
最长的路径最短,可以考虑二分ans。验证ans成不成立。如果能找到一条边,删去这边后,所有大于ans的路径都小于ans 了,那么成了。这条边一定要被所有大于ans的路径经过,并且是所有满足这个条件的边的边权最大的那条。计算树上一条边被经过次数差分啊! 起点+1,终点+1,lca-2.(lca可以用倍增,tarjian,树剖,个人喜好吧)。对于一个点,以它为根的子树的权值和(权值和包...原创 2018-11-05 00:24:36 · 210 阅读 · 0 评论 -
P3940 分组(贪心+并查集)
因为字典序最小。组越少 + 越前面的组size越小!考虑数据范围131072!好巧啊!131072 + 131072 = 262144 = 512 * 512.也就是说任意两种颜色之和小于等于512的平方。。。。那么我们对于一个元素i可以从512倒着枚举z(这样可以剪掉平方比i小的,省时),表示它和另一个元素j之和是z的平方。对于k == 1;因为组内元素,必须有序(每个小组都...原创 2018-11-02 22:02:12 · 396 阅读 · 0 评论 -
bzoj 1596(树上dp)
弱化版将军令;//然而这里并不讲将军令的做法而是讲另一种dp做法。dp一下;dp[i][0] =表示i子树内所有草地全被覆盖,但是点i没有信号塔所需要的最小信号塔;dp[i][1] =表示i子树内所有草地全被覆盖,点i有信号塔所需要的最小信号塔;dp[i][2]=表示i子树内除了i所有草地全被覆盖,dp[i][1]可以由他的儿子v 的所有状态更新,初值为1,表示i位置有塔;...原创 2018-09-08 17:42:50 · 211 阅读 · 0 评论 -
任(一道思维巧妙的矩形前缀和问题)
本题一开始就没准备写正解。。。暴力(70):先把前两个点,bfs出来就好(信息奥赛一本通,病毒)。对于n = 1和n = 2的情况。莫队啊!考虑加入一列对答案的影响。如果n=2,先处理询问端点在同一行的,再处理不同行的。#include<bits/stdc++.h>using namespace std;int m, n, qq, xm, xn...原创 2018-11-02 17:36:56 · 363 阅读 · 0 评论 -
gcd(打表的题)
把表打出来,打满足条件的a.b和他们的gcd也就是(a^b).发现满足条件的a - b = gcd(a,b) = a^b;令a-b = c;那么gcd(a,a-c)=c:就是a ^c = a- c;枚举c.#include<bits/stdc++.h>using namespace std;int n,ans;int main(){ freope...原创 2018-10-30 17:30:44 · 253 阅读 · 0 评论 -
2017 noip 列队(动态开节点)
每行用一个线段树来维护在这行的人的信息,最后一列用一个线段树在这行的人的信息。一个人离队。如果这个人(代号人1)不在最后一列,出队,就把他的信息从他所在的行所代表的线段树中删除,再把在这一行最后一列的人(代号人2)的信息从最后一列删除,再把人2的信息加入到这一行的的线段树中。最后把人1的信息加入到最后一列所在的线段树的末尾。如果这个人在最后一列,把他他的信息从线段树里删除,再加到最后一...原创 2018-10-27 16:01:54 · 252 阅读 · 0 评论 -
一道线段树+树状数组的题
水上由岐有一个长为n 的序列a1; a2; : : : ; an。接下来她要进行m 次操作。对于第k 次操作,她会指定jk,然后取出所有i ≥ jk 且ai ≤ ajk 的ai,将它们从小到大排序后按顺序重新放回之前的位置(只有这些数的顺序可能改变,其它数的位置不变)。定义一个逆序对(i; j) 为满足i < j 且ai > aj 的一个二元组。第一次操作前和每次操作结束后,...原创 2018-10-24 18:42:05 · 302 阅读 · 0 评论 -
电压机制(树上差分)
电压机制(voltage)【问题描述】科学家在“无限神机”(Infinity Machine)找到一个奇怪的机制,这个机制有N个元件,有M条电线连接这些元件,所有元件都是连通的。两个元件之间可能有多条电线连接。科学家对这些元件可以任意地设置为“高电压”和“低电压”两种模式,如果一条电线的一端为高电压,另一端为低电压,这条电线就会产生电流。为了安全的研究“无限神机”,科学家需要找到一条电线,...原创 2018-10-22 20:54:40 · 299 阅读 · 0 评论 -
某树状数组题-。-
wzz拥有一个长度为n的数字序列,他向你询问了q个问题,每个问题都是告诉你两个数L和R,问你在序列的第L到第R个数的这一段序列中,有多少个数字k,满足在这一段中恰好出现了k次。Input输入的第一行为两个整数n,q,表示序列的长度和问题的个数。接下来一行有n个整数,表示wzz的数字序列。接下来q行,每行有两个整数L,R,其含义如题目中所示。Output输出共q行,每行有一个整数,表示第...原创 2018-10-22 19:59:26 · 252 阅读 · 0 评论 -
一道关于矩阵的题
wzz的视察文件名: inspect 时限:1s 内存:256MBDecriptionwzz拥有一个王国。他的王国是长方形的,跨越了n个维度区和m个经度区,且在每个经度区和纬度区的交界处有一座城市(即wzz的王国一共有n * m座城市)。某一天早上,wzz从他的一万平方米的大床上起来,他决定去视察一下他的王国,去查看一下他的全民刷题计划的实施情况。消息一出,全王国各城市的市长们都吓到了,...原创 2018-10-22 19:41:40 · 297 阅读 · 0 评论 -
2012 noip 开车旅行(倍增)
对于每个点要找离它次近和最近的点,我们可以先把海拔高度排序,对于点i , 离他次近和最近的点一定在i-1,i-2,i+1,i+2这四个位置中,先找最近再找次近=、=因为一直往右走,所以按排序前每个点的位置从左往右找,找完一个点删除,这样可以保证次近点和最近点都在该点的右边,同时可以保证信息的连续性。sta[i][j]表示a在i这个点开车,过2^j轮后,a走的路程;stb同理f[i][j...原创 2018-10-09 11:59:20 · 254 阅读 · 0 评论 -
免费的馅饼(二维偏序)(树状数组版)
https://vjudge.net/contest/261263#problem/B(题目链接)因为一秒可以走1或2步或不走。我们可以看成半秒走1步或不走。dp[i]表示接到第i块饼时最大的分数值现在有两块饼它们下落的时间为ti,tj,位置为pi,pj;假设ti > tj;只有ti - tj >= |pi - pj| 时dp[j]可以转移到dp[i];当p...原创 2018-10-18 10:07:24 · 637 阅读 · 0 评论 -
noip2016换教室(期望dp)
整体思路:这节课换了教室的期望路程 = min(上节课换了教室的期望路程 + 上节课教室到这节课教室的期望路程, 上节课没换教室的期望路程+ 上节课教室到这节课教室的期望路程)这节课没换教室的期望路程 = min(上节课换了教室的期望路程 + 上节课教室到这节课教室的期望路程,上节课没换教室的期望路程+ 上节课教室到这节课教室的期望路程) 上节课教室到这节课教室的期望路程 = 某一情...原创 2018-10-06 22:56:07 · 223 阅读 · 0 评论 -
noip 2016(愤怒的小鸟)(状压dp)
状压dp,每位代表一只猪,1为猪打到了,0为猪还没打到两个猪的坐标确定一条抛弧线(即为打出鸟的轨迹)g[i][j]表示由i猪和j猪确定的抛弧线,能打到的猪。(是一个二进制的状态)预处理:把能被i猪和j猪确定的这条抛弧线能打到的猪都用状压的1来表示,存到g[i][j]里。dp[s]表是当状态为s时所需要的最少抛弧线 (最少小鸟);当发射轨迹为i猪和j猪确定的抛弧线的小鸟时 ...原创 2018-05-19 17:06:17 · 641 阅读 · 1 评论 -
noip 2016 天天爱跑步(倍增+差分)
一个人从a跑到b。l=lca(a,b)//倍增f[l][0]:为l的爸爸。把他拆成四个人。分别从a跑到根的人。从f[l][0]跑到根的人。从根跑到b的人。从根跑到l的人。//差分的思想,我们要让a到b最短路径上所有的点经过次数都+1,并记录时间那么在差分数组上让a点+1,b点+1,l点-1,,fa[l][0](l的父亲)-1;如何记录每一个人从a跑到b的信息...原创 2018-05-18 20:54:11 · 400 阅读 · 0 评论 -
noip 2015 子串(dp+滚动数组)
题目大意:给定两个字符串A,B(都是由a,b组成)(长度分别为n,m);你可以在字符串A中任截取k个字符串按截取顺序组成字符串B,问能截取的方案数动态规划;s[i][j][k]:字符串A正要处理第i项了,数组B匹配正要第j项,已经截取了k个字符串,总方案数;f[i][j][k]:字符串A正要处理第i项了,数组B匹配正要第j项了,已经截取了k个字符串,且第k个字符串必须包含A的第i项的...原创 2018-05-11 16:12:21 · 211 阅读 · 0 评论 -
一道时间分治的题
Graph输入文件:graph.in输出文件:graph.out时间限制:1 second空间限制:512 MB题目描述现在你要维护一张无向的简单图。你要执行如下操作:0:加入一条边。保证它不存在。1:删除一条边。保证它存在。2:查询两个点是否联通。输入格式输入的第一行是两个正整数n,m 。接下来 行,每一行三个整数opt,x,y 。其中opt 表示操作编号。输出格式对...原创 2018-10-23 09:36:01 · 439 阅读 · 0 评论 -
一道vector+map的dfs题
题目描述给出个数,从中选取一个子集,如果这个子集可以分成两个和相等的部分,那么方案数加1。求总方案数。输入格式第一行包含一个正整数n。接下来n行,每行n个数。输出格式一行包含一个数,表示结果。样例41234输出:3;n <= 20 ,给出的每一个数的绝对值<= 1e9;这道题3^20枚举。。。然而要超时,,,好吧我们先枚举3^10.用map...原创 2018-10-23 09:50:16 · 170 阅读 · 0 评论 -
NOI 2008 假面舞会
如果没有环那么最大的面具的种类为所有联通块最长链之和、最小为3,如果最长链之和<3,则无解;如果有环找出每个环的结点个数=、=面具种类数为所有环的结点个数的最大公约数x。为什么呢一个环1->2,2->3,3->4,4->5,5->6,6->1;那么可能的面具数为6或3种,是6的约数。如果公约数小于3无解,大于3有解,最小的面具种数一定是&g...原创 2018-10-23 15:42:00 · 361 阅读 · 0 评论 -
P & Q(dp)
这道题,我乱写。。题都读错了,没看到q,p只能在两个不同的取。错误算法还对(100)了。正解:f[i][j]:表示第i个数,q有j个没有匹配,的p没有匹配数.二分总答案数。只要最后满足f[1+n][mid] >= mid 就好,处理完n个数,q有mid个没有匹配,p有大于等于mid个没有匹配.一定可以匹配出mid个。对于第i个数,如果它可以分成的p的数量和q 的数量之和...原创 2018-10-31 16:06:54 · 813 阅读 · 0 评论 -
graph/leave.(二进制分组,多起点spfa)
二进制枚举,把所有的和1相连的点分成两组,一组为起点,一组为终点=。=把所有起点一起跑spfa。注意重边。我用了双向队列,优化一波=、=#include<bits/stdc++.h>using namespace std;int n,m;int tp, nex[200005], tov[200005], h[200005];int head, tail, v...原创 2018-10-31 15:17:07 · 201 阅读 · 0 评论 -
water(最小生成树)
这道题有两个方法。1.最小生成树。(我改的此法,此法是正解)其实每个块所在位置的积水高度就是从这个块到矩形外的所有路径中最大值的最小值。对于一个块我们把它向四周的块连边,每条边的权值为两端点点权的最大值。(因为所有路径中最大值才有用)如果这个块在矩形的边缘,那么它向矩形外(虚节点)连边,边权为max(这块的高度,0)我们建一棵最小生成树(即是最大值的最小值),从虚节点开...原创 2018-10-26 18:48:07 · 337 阅读 · 0 评论 -
mine(一道dp)题
这道题就是个dpdp[i][j]表示正要推这个位置,这个位置字符是j时,使字符串合法的方案数。0对应这个位置字符是0;1对应这个位置字符是1;2对应这个位置字符是2;3对应这个位置字符是*;这个位置字符是0,1,2,*时,是什么,j就更新什么,这个位置字符是?,要讨论当这个位置是以上所有情况时。再考虑怎么转移就行了。//我的第三维,只在当j = 1时用到dp...原创 2018-10-26 17:29:02 · 262 阅读 · 0 评论