VIJOS-P1625 精卫填海】的更多相关文章

http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 1013; const int M = 40003; const int…
背景 B酱为NOIP 2014出了一道有趣的题目, 可是在NOIP现场, B酱发现数据规模给错了, 他很伤心, 哭得很可怜..... 为了安慰可怜的B酱, vijos刻意挂出来了真实的题目! 描述 已知多项式方程: $$a_0+a_1x+a_2x^2+...+a_nx^n=0$$ 求这个方程在[1, m]内的整数解(n 和 m 均为正整数). 输入格式 输入共 n+2 行. 第一行包含 2 个整数 n.m,每两个整数之间用一个空格隔开. 接下来的 n+1 行每行包含一个整数,依次为$a_0,a_…
描述 小\(A\)和小\(B\)决定利用假期外出旅行,他们将想去的城市从\(1\)到\(N\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为\(H_i\),城市\(i\)和城市\(j\)之间的距离\(d(i,j)\)恰好是这两个城市海拔高度之差的绝对值,即\(d(i,j) = |H_i - H_j|\). 旅行过程中,小$A$和小$B$轮流开车,第一天小$A$开车,之后每天轮换一次.他们计划选择一个城市$S$作为起点,一直向东行驶,并且…
http://www.lydsy.com/JudgeOnline/problem.php?id=2541 https://vijos.org/p/1366 loli秘制大爆搜_(:з」∠)_坑了好久啊QAQ一上午花了2h+写这道题,最后WA了2个点,调了一下午多. 在矩形一条边上的所有位置都是等效的,所以把每个矩形的四条边拆开,表示为点.每个点只会连出去一条边,暴力找边建图,最后跑堆优dij. 时间复杂度\(O(n^2)\)(附带大常数16一脸不可过?不过最后竟然过了) 一开始认为有环爆搜不可做…
http://www.lydsy.com/JudgeOnline/problem.php?id=1065 https://vijos.org/p/1826 好难的题啊TWT ∈我这辈子也想不出来系列~ 题解详见2009年的论文徐源盛<对一类动态规划问题的研究>. 这道题我第一眼一脸懵逼... 然后持续懵逼... 最后看论文里的题解 我再来重复一下(论文绝对比我讲得详细QAQ) 首先\(R(i)=C_i+k\sum_\limits{j=1}^wR(p_j)\) 如果是单纯的一棵树,那么从孩子传到…
a { text-decoration: none; font-family: "comic sans ms" } .math { color: gray; font-family: Consolas } 描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记.因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作…
Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球.小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 vi 号星球去.显然,飞船驶过一条航道是需要时间的,对于航道 j,任意飞船驶过它所花费的时间为 tj,并且任意两艘飞船之间不会产生任何干扰.为了鼓励科技创新, L 国国王同意小 P 的物流…
描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的--如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:\(K=1\),读入\(l,r\)表示在区间\([l,r]\)中种上一种树,每次操作种的树的种类都不同\(K=2\),读入\(l,r\)表示询问\([l,r]\)之间能见到多少种树\((l,r>0)\) 输入格式 第一行$n,m$表示道路总长为$n$,共有$m$个操作接下来$m$行为$m$个操作 输出格式 对于每个$K=2$输…
不知怎地竟有种错觉此题最近做过= =目测是类似的?那道题貌似是纯动归? 本来今晚想做两道题的,一道是本题,一道是P1653疯狂的方格取数或NOI08 Employee,看看现在的时间目测这个目标又达不成了. 不过至少还是有收获的,虽然现在越来越觉得我做题的时间难以估摸了. 本来纯粹是以复习线段树(喂喂你本来就没码过几遍!)的心态来做这道题的,现在发现(1)我的基础好糟糕(2)这题其实不简单! 至今觉得我不用build_tree,直接维护树导致过程的参变很多这事儿有点麻烦,写个过程要传这么多变量,…
https://vijos.org/p/1892 此题需要手动开栈: <<; //256MB char *p=(char*)malloc(size)+size; __asm__("movl %0, %%esp\n" :: "r"(p)); 还需要卡评测机←十分的神 卡了30多次评测机终于屈服了,一开始我盲目乱提交,总是T,后来上网找了一下解决卡常数方法,如下: 解决卡常数的方法比较多样化,主要有重复交题,拼人品让测评机快一点,在代码末尾加上//orz+神…
题目链接: https://vijos.org/p/1100 题目大意:NOIP著名的加分二叉树.给出一棵树的中序遍历,加分规则左子树*右子树+根.空子树分数为1.问最大加分的树结构,输出树结构的先序遍历. 解题思路: 先从小的问题看起. 对于一棵子树,只要知道根是啥,就能轻松求出这棵子树的加分情况. 那么就变成枚举根的区间DP问题. 由于要输出先序遍历,则用m[i][j]记录在i~j区间选择的根. 区间DP边界: ①一个点情况:即无左右子树,dp[i][i]=node[i],m[i][i]=i…
题目链接: https://vijos.org/p/1180 题目大意:选课.只有根课选了才能选子课,给定选课数m, 问最大学分多少. 解题思路: 树形背包.cost=1. 且有个虚根0,取这个虚根也要cost,所以最后的结果是dp[0][m+1]. 本题是cost=1的特殊背包问题,在两个for循环上有一个优化. for(f+1...j....cost) for(1....k...j-cost) 其中f为当前已经dfs子结点个数.之所以+1,是因为根要预留一个空间. f+=dfs(t),dfs…
题目链接:https://vijos.org/p/1218 算法:环形DP+划分型DP 环形DP的思路很简单,将1~n中每一个节点当成起点进行划分型DP即可,关于划分型DP前面论文有介绍~查找tag把~ sxbk!sxbk...此题那么水卡了我3个小时...变态...到头来发现是初始化.!!!!!!! 但我也学到了不少东西~ #define oo (~(unsigned long long)(0)>>1) 替代了 maxlongint, 将oo+1即可得到负的最大值 负数的mod是将它mod后…
题目链接:https://vijos.org/p/1792 算法:DP 看到这题真的一点不会...只能爆搜一下..但太太慢了..看了题解后,听说是分组背包??不知道.. 好吧,,还是百度了下题解,渐渐明了.. 我们用f(i, j)来表示前i种花摆j盆的最大方案数,可以推得 f(i, j) = sum{ f(i-1, j-k) | 0<=k<=a[i], 其中a[i]为i种花的盆数 } 在这里,我们可以简化为一维的~ f(j) = sum{ f(j-k) | 0<=k<=a[i],…
题目链接:https://vijos.org/p/1431 算法:贪心 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去.到那时,岛上的所有人都会遇难.守望者的跑步速度为17m/s,以这样的速度是无法逃离荒岛的.庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.守望者的魔法值恢复的速度为4点/s,只有处…
题目大意: 给出N种木棍(每种木棍数量无限)的长度(<=3000),每根木棍可以把它切掉[1,M]的长度来得到新的木棍. 求最大的不能被组合出来的长度. 如果任何长度都能组合出来或者最大值没有上限输出-1.    (1<N<100, 0<=M<3000), 解题过程: 1.这题就是USACO 4.1的麦香牛块 ,只不过 数据 加强了下. 当时就把它当做 背包 来做,然后确定一个较大的范围(当时就选了60000),求出这个范围里的长度能否都被组合出来,如果能就输出-1. 否则输…
昨天早上上课讲旅行商问题,有点难,这周抽空把3^n的算法码码看.不过这个简化版已经够折腾人了. 其一不看解析不知道这是双进程动态规划,不过我看的解析停留在f[i,j]表示第一个人走到i.第二个人走到j,且1~max(i,j)的都走过的最短路,后面的动态转移方程是我自己写的,不过我的貌似和别人的不太一样? 其二不知道为什么坐标改成real类型就不会207了,这可是个bug?纠结了我一晚上啊昨晚又熬夜了今天早上物理课又打瞌睡了…QAQ 其三给ans或者f数组赋初值不能写maxlongint一定要1e…
做完Victoria的舞会3,挑了vijos里强连通分量里面难度值最低的题目,也就是这道.先把第一小问做了,纯Tarjan,只是我学的时候的标程是用邻接表的,这题数据小于是用了邻接矩阵,两者之间的切换花了点时间,我天真地以为i<j等价于i的时间戳小于j的了,呵呵,那时候天真地连d数组都没写… 第二问看别人写了是用n次dfs?我多念了几遍题这**不就是明星奶牛么…感觉这两题基本都没什么差别.放假前老师给明星奶牛的评价是,做了这题图论基本复习了一遍…好吧,是啊,我把书翻出来,敲了一遍拓扑排序… 写完…
第一次看到这题怎么也不会想到是并查集题目…星期五第一次看到这题,到今天做出来,实在是废了好多功夫.看了很多人的解题都有same和diff数组,我也写了,后来发现不对啊两个数组的话find函数怎么写呢?hash也很久没写了,导致自己测试的时候有两个点没过是因为hash弄错了. 我的程序里f[x]= same[x] (x<=max) = diff[x-max] (x>max) 总算,最后还是通过了.又是一道想不到思路就写不出的题.据说这题和食物链很像,那么食物链就是我的下一个目标~总感觉并查集是有…
可持久化线段树 这次是询问一段区间内权值 在给定范围内的点的数量,同样是可持久化线段树简单操作…… //Vijos 1923 #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define rep(i,n) for(int i=0;i<n;++i) #defin…
中国剩余定理 没啥重要的……模板题,中国剩余定理就是解出模线性方程组的一个可行解(好像也是唯一解?) 这是一种神奇的构造方法……明白了为什么这样构造是对的就行了=.=至于怎么想到这种构造方法的……去问孙子去→_→ //Vijos 1164 #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define rep(i…
[题目链接] https://vijos.org/p/1213 [题意] m个人将n个点访问完,每个点能且只能访问v次,点点之间存在有权边,问最小费用. [思路] 有源汇的上下界最小费用最大流. 每个点只能访问v次,可以拆点后点点之间连一条上下界均为v费用为0的边.对于上下界依旧选择用ST平衡流量.然后连费用边.最后连一条(S,s,m,0)的边,表示s只能有m的出流量. [代码] #include<set> #include<cmath> #include<queue>…
P1653疯狂的方格取数 Accepted 标签:天才的talent[显示标签]   背景 Due to the talent of talent123,当talent123做完NOIP考了两次的二取方格数和vijos中的三取方格数后,突发奇想.... 描述 在一个宽M,长N的矩阵中,请你编一个程序,n次从矩阵的左上角走到矩阵的右下角,每到一处,就取走该处的数字,请你选择一种走法使取得的数字的和最大,并输出其最大值.其中:3<=M<=20 M<=N<=100 1<=n<…
链接:https://vijos.org/p/1002 题意:一条长度为L(L <= 1e9)的桥上有N(1<= N <= 100)颗石头.桥的起点为0终点为L.一只青蛙从0开始跳,每次跳的长度在s,t(1<= s <= t <= 10)之间.问青蛙过河最少踩到的石头的数量? 思路:区间dp的感觉很强烈..但是范围实在是太大了.并且有一种感觉就是当两颗相邻的石头之间的距离相距很远时,其中间的很大一段其实状态只是一个递推的关系,即只是传递,并没有改变一段区间的状态.并且有…
题目链接:https://vijos.org/p/1003 题意: 1. 表达式只可能包含一个变量‘a’. 2. 表达式中出现的数都是正整数,而且都小于10000. 3. 表达式中可以包括四种运算‘+’(加),‘-’(减),‘*’(乘),‘^’(乘幂),以及小括号‘(’,‘)’.小括号的优先级最高,其次是‘^’,然 后是‘*’,最后是‘+’和‘-’.‘+’和‘-’的优先级是相同的.相同优先级的运算从左到右进行.(注意:运算符‘+’,‘-’,‘*’,‘^’以及 小括号‘(’,‘)’都是英文字符)…
题目链接:https://vijos.org/p/1165 题意:输入n(n <= 20,000)段线段的端点,问所有线段的长度总和为多少? input: -1 1 5 11 2 9 output: 思路:将左右端点分成一个一个的点,并且标记输入的id.即弄成一个pair;排序之后模拟加点,左端点直接入栈,右端点若是栈顶端点对应的右端点时,栈顶元素出栈,那这时是否需要更新总长度呢?并不需要.如2 11 ,7 8,栈内为2,7.当前的右端点8对应的左端点为7,然而都在[2,11]内,所以出栈即可:…
题目链接:https://vijos.org/p/1063 题意:有n(n <= 100)行,每行有2*i-1个可显字符'#'与'-',组成一个倒三角形,问由'-'组成的最大三角形的'-'的个数为多少? 思路:顶点为倒三角,即行列奇偶相同:对于一个顶点可以扩展的最大边长首先需要上面三角为'-',这样只需建立在顶点上一行的左右两个点的最大边长即可: 三角形个数就是边长的平方: ps:开始我想的是从列的角度看轴线的左右两边的min,然后模拟行.真是醉了. #include<iostream>…
题目链接:https://vijos.org/p/1061 n个人选出3*m人,排成m组,每组3人. 站的队形——较矮的2个人站两侧,最高的站中间. 从对称学角度来欣赏,左右两个人的身高越接近,则这一组的“残疾程度”越低. 计算公式为 h=(a-b)^2 (a.b为较矮的2人的身高)现在候选人有n个人,要从他们当中选出3*m个人排舞蹈,要求总体的“残疾程度”最低; input: 第一排为m,n. 第二排n个数字,保证升序排列. 思路:由于和中间高的人无关,但是每次选旁边两个的时候,会由于没有比这…
题目链接:https://vijos.org/p/1062 题意:输入n(n <= 1500)个女生左边有多少个男生.每个女生都和她左边最近的男生跳舞. 输出每个女生到可以与之跳舞的男生之间有几个男生;(包括跳舞的男生) input 64 5 6 6 6 6output 1 1 1 4 5 6 思路:简单的递推即可:并没有用到栈..对于第i个女生,易知当该女生左边男生的数量比前一个女生的数量多时,结果就是1.但是当出现连续的相等时,即表示这些女生之前没有男生,这时我们就需要先前找"可用&q…
Vijos P1060 盒子 链接:https://vijos.org/p/1060 [思路] 组合公式+精度选择. 首先解决将A个数放入N个集合的数目,其中集合可空.因为可以有球不放入集合,所以增加一个集合放置剩余的球,集合数为N+1.因为集合允许为空,所以可以把这个问题看作是有N+A个位置(N个挡板A个球),从中选择N个位置放置挡板的问题(分成N+1份). 公式为C(N+A,N) 简化为 (N+1*…*N+A)/(A!) 用usigned long long刚好可以过. [代码] #incl…