https://www.lydsy.com/JudgeOnline/problem.php?id=1149 https://www.luogu.org/problemnew/show/P3621 sb贪心,然而跪了两次才A……一次还是我自己出的样例都没过结果就交了…… dep[i]表示i子树最深深度,up[i]表示i子树是否有不同层的风铃. 那么深搜一下就行了,判断方法看我代码吧……懒得讲了. #include<cmath> #include<queue> #include<…
[APIO2007]风铃 题目描述 你准备给弟弟 Ike 买一件礼物,但是,Ike 挑选礼物的方式很特别:他只喜欢那些能被他排成有序形状的东西. 你准备给 Ike 买一个风铃.风铃是一种多层的装饰品,一般挂在天花板上. 每个风铃都包含一些由竖直线连起来的水平杆.每根杆的两头都有线连接,下面或者挂着另一根水平杆,或者挂着一个玩具.下面是一个风铃的例子: 为了满足弟弟,你需要选一个满足下面两个条件的风铃: (1) 所有的玩具都在同一层(也就是说,每个玩具到天花板之间的杆的个数是一样的)或至多相差一层…
你需要选一个满足下面两个条件的风铃:(1) 所有的玩具都在同一层(也就是说,每个玩具到天花板之间的杆的个数是一样的)或至多相差一层.(2) 对于两个相差一层的玩具,左边的玩具比右边的玩具要更靠下一点.风铃可以按照下面的规则重新排列:任选一根杆,将杆两头的线“交换”.也就是解开一根杆左右两头的线,然后将它们绑到杆的另一头.这个操作不会改变更下面的杆上线的排列顺序. 其实看着这个题目我第一反应是平衡树,像splay,fhq之类的可以完成的区间翻转操作,但是这个题目不同的是,他改变两个之后其内部的顺序…
Description 你准备给弟弟 Ike 买一件礼物,但是,Ike 挑选礼物的方式很特别:他只喜欢那些能被他排成有序形状的东西. 你准备给 Ike 买一个风铃.风铃是一种多层的装饰品,一般挂在天花板上. 每个风铃都包含一些由竖直线连起来的水平杆.每根杆的两头都有线连接,下面或者挂着另一根水平杆,或者挂着一个玩具.下面是一个风铃的例子: 为了满足弟弟,你需要选一个满足下面两个条件的风铃: (1) 所有的玩具都在同一层(也就是说,每个玩具到天花板之间的杆的个数是一样的)或至多相差一层. (2)…
题目链接 可能是个树上 DP?指针真好玩 23333. 首先对于所有玩具如果有深度差超过 1 的就是无解(在这里贡献 WA * 3),所以 dfs 一遍记录深度是有必要的…… 然后如果有一个点的两颗子树中都含有最小.最大深度,那么这种情况也是无解,可以令同时含有两种深度的子树 tag = 1. 然后考虑最少交换次数,对于每一个节点的左右子树,三种情况需要交换: 1. 左边全是小深度的,右边全是大深度的 2. 左边全是小深度的,右边大小深度都有 3. 左边大小深度都有,右边全是大深度的 root-…
没有算法,但是要注意细节. 首先无解的情况,显然的是最小深度的叶子节点和最大深度的叶子节点的深度差大于1:还有一种比较难想,就是如果一个点的左右子树都有最大和最小深度的叶子节点,这样交换左右子树也不行. 答案比较容易,就是统计一下右子树size>左子树size的节点个数即可. #include<iostream> #include<cstdio> using namespace std; const int N=200005; int n,h[N],cnt,tot,c[N][…
https://zybuluo.com/ysner/note/1140124 题面 题面复杂,戳我 解析 看着这道题... 似乎与[HNOI/AHOI2018]道路有不可言妙的相似之处. (题面吓人,但是题本身很水) 首先明确每个交汇处只能转一次. 那转还是不转呢? 只要转了能使状态更优,就转嘛... 设每个子树有三种状态:\(0\)为只有高玩具,\(1\)为只有低玩具,\(2\)为两者兼备. 于是: 当\(l=2,r=1\)时,转 当\(l=0,r=1\)时,转 当\(l=0,r=2\)时,转…
1.        资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2------01背包问题F[I,j]:=max(f[i-1,j-v]+w,f[i-1,j]); 3.        线性动态规划1-----朴素最长非降子序列F:=max{f[j]+1} 4.        剖分问题1-----石子合并F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]); 5.        剖分问题2-----多…
1.        资源问题1 -----机器分配问题 F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2 ------01背包问题   F[I,j]:=max(f[i-1,j-v]+w,f[i-1,j]); 3.        线性动态规划1 -----朴素最长非降子序列   F:=max{f[j]+1} 4.        剖分问题1 -----石子合并 F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]); 5.       …
洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1329957 题目链接地址: 洛谷P1484 种树 洛谷P3620 [APIO/CTSC 2007]数据备份(各大oj多倍经验) 照例吐槽 两道基本一模一样的题,只是第二道要差分顺便思维稍微向这边转化一下... 我觉得这两个题思维很不错啊!很\(Noip\ T2\)的样子... 话不多说将题解 贪心+堆优化 肯…
这一道题,我也是搞了很久才搞懂的(也就两个多小时). 感谢Rayment大佬的题解! 我们进入正题. 对于一个笼子里的动物,我们可以选择撤走或不撤走,可以用0和1来表示,很容易就想到二进制,想到状压dp(为什么先选dp,看数据想想吧). 观察题面,我们可以发现,小朋友最多可达五万人(动物园容得下吗...)!太大了,肯定不能来做状压dp. 不过,正当我们努力寻找更小的可以用来状压dp变量时,去忽略了题面上的一点: 每个小朋友站在大围栏圈的外面,可以看到连续的 5 个围栏 5,这个数字很小,可以用来…
你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣.已知办公楼都位于同一条街上.你决定给这些办公楼配对(两个一组).每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份.然而,网络电缆的费用很高.当地电信公司仅能为你提供 K 条网络电缆,这意味着你仅能为 K 对办公楼(或总计 2K 个办公楼)安排备份.任一个办公楼都属于唯一的配对组(…
首先一眼感受到这题特别的性质……5个?这么小的,感觉就像是状压.脑补了一下,如果没有环的话应该很好做吧……有环怎么办?5真的很小的,随便乱搞肯定也可以.那就放在外面暴力枚举吧.然后正解就出来了. 然而这题题面真的有毒吧.说好的不能全部选走?我还多加了一个维度,结果数据里面允许全部取走……然后对于<5的点单独写了个爆搜.代码奇长……大家看看就好吧(以及位运算本人一贯以来又清奇又暴力的脑回路……) dp[][][0/1],1代表已经保留了至少一个动物……如果要A掉此题的话把转移那里加上dp[][][…
直接贪心(每次选最小)的话显然不对...样例都过不了... 选两个办公楼的时候,显然不能跨越另一个楼,这样不优... 于是 先把原数列处理成n-1个的数(每一个办公楼和上一个的距离),存在a[]中 题目就是 要求选出K个不相邻的数,使得选出的数的和最小 依然考虑贪心,每次选最小的 但是若a[]是2 1 2 6,要选K=2个,先选了1,然后会发现两个2都没法选,只好选6,这样就尴尬了... 1选了就选了吧,我们考虑补救措施... 就是选1的时候,在堆里删掉两个2,然后在堆中插入2+2-1 相当于…
题目描述 你在一家IT公司为大型写字楼或办公楼的计算机数据做备份. 然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣. 已知办公楼都位于同一条街上,你决定给这些办公楼配对(两个一组). 每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份. 然而,网络电缆的费用很高. 当地电信公司仅能为你提供 K 条网络电缆,这意味着你仅能为 K 对办公楼(总计2K个办公楼)安排备份. 任意一个办公楼都属于唯一的配对组(换句…
Description Input Output 输出仅包含一个整数.表示最少需要多少次交换能使风铃满足Ike的条件.如果不可能满足,输出-1. Sample Input 6 2 3 -1 4 5 6 -1 -1 -1 -1 -1 -1 Sample Output 2 题解: 直接一次DFS即可. 若两棵子树中玩具深度差>1,输出-1. 若两颗子数内部玩具深度差都>0,输出-1. 若左子树中存在比右子树深度小的玩具,inc(ans). 我竟然WA了一发,可悲. 代码: uses math; v…
o诶人太弱..... 记一发滚粗记以便治疗我的健忘症= = //文章会不定时修改,添加一些内容什么的...因此最好看一下刷新一下(因为有可能你正在看= =我正在写... 5.2 早上9点坐上长达11小时的动车= =在车上用电脑浪........当火车经过平原时,发现平原好大好平,一望无际!(无知的我...) 进京时是8点多了吧,北京已经黑了.可是,窗外金黄色的灯光照亮了整个视野!妈呀!好繁华好美丽!!!窝简直被惊呆了!帝都就是帝都!好美好美............. 到北京火车站后,老师说搭地铁…
蒟蒻有幸参加了神犇云集的CTSC & APIO 2015,感觉真是被虐成傻逼了……这几天一直没更新博客,今天就来补一下吧~~(不过不是题解……) Day 0 从太原到北京现在坐高铁只需3小时= =然而高铁一路上多次停靠,时速长时间保持在200Km/h以下,超差评!! 然后坐地铁来到燕山大酒店,传说中的四星级酒店啊0.0看大厅就觉得很高档的样子,然而我们住的是旁边的 燕山大酒店公寓楼………
Day0 5.5 花了一上午的时间把codechef div2的前四题切了,又在zbq老司机的指导下把第五题切了 中午12:00 gryz电竞组从机房出发,临走的时候看到很多学长挺恋恋不舍的,毕竟可能是最后一次颓废了 先做ldh的车到青州,再从青州做动车去北京.动车很兹瓷啊,感觉像是地上的飞机233 路上跟着zbq看完了bilibili 2017的年度翻唱合集,感觉很不错 到了北京,找了个车站附近的宾馆住下了.北京不愧是北京啊,人是真多!宾馆房间是真小!(而且还很贵) zxl让我们自己解决晚饭的…
Description Input Output 输出仅包含一个整数.表示最少需要多少次交换能使风铃满足Ike的条件.如果不可能满足,输出-1. Sample Input 6 2 3 -1 4 5 6 -1 -1 -1 -1 -1 -1 Sample Output 2 题解 首先,算出每个结点的maxdep和mindep,即这个子树里叶结点的最大.最小深度. 如果maxdep[1]-mindep[1]>1,无解. 看某个结点,如果它的叶结点深度统一,直接忽略:如果它的两个子结点的子树里深度都不是…
day0 报道 上午早早就起来了,两点才到酒店,然后去简单试了试机子. 不得不说今年八十中的伙食变得瓜皮了啊,去年还是大叠的5元卷,今年变成了单张的*餐卷.不知道食堂吝啬什么,面条米饭都只有一点点,还没法加饭,饮料也没得买了. day1 ctsc一试 食堂早餐依旧有味道莫名的早餐奶. 吃完饭早早到了考场,然而时间到了之后并没有开始,据说是监考人员不足(???),总之拖着拖着咕了半个多小时. 前几天听候选队的大佬ditoly传达了张哥哥的话,据说今年ctsc的题会相当的难,窥屏都没有用,让我有点慌…
(要写CTSC的时候才想起来没写WC2018,那就粗略回顾一下吧hhhhh) WC 2018(简略版): 大概和 一个宁夏和一个天津的大哥一个宿舍hhhh,字典序分宿舍真是奇妙. WC讲课真的不是人听的,感觉一直划水hhhh..... 中间有一天还是生日,草草的过了,蛋糕都没有QWQ 试机的时候才想起来...以后全国的比赛都是 NOI Linux 啊(作为SD选手的天然劣势),我以前用都没用过,这.... 试机现场学,,发现根本用不6,那比赛只能划水了啊QWQ 比赛现场接着学Linux,于是就有…
近期正在疯狂复习某些东西,这篇博客尽量年底更完……(Day2T2除外) 好了,所有的希望都破灭了,原来这就是出题人的素质.——一个被欺骗的可怜 $OIer$ 人生中倒数第三次 $noip$ (Maybe it is),好好珍惜这快乐的一段人生吧…… $OYYP$ 和 $WXJ$ 神仙都考得很好,然后快乐地回广州二中继续修仙了……其他大佬们也都稳稳地游冬令营了吧……我可能是要单独留守北京的最菜选手了…… 想看 $Day1$ 各种段子的可以空降. 游记 Day 0 啥都没复习,慌得一批. 打了个自闭…
Day 0 早上4点多起床赶飞机,起床的时候发现闹钟调成下午4点的了...(虽然说早就已经被父母的洗漱声音吵醒了) 飞机上碎觉.到了北京发现比福州还热...而且北京今天意外地好天气,没有传言中的"雾都"那么可怕,至少天还是蓝的... 下午去八十中试机.试机的题目是NOI2016的优秀的拆分和网格.于是就想敲个SA的板子,然后敲到后面板子不记得了,就打开了UOJ,就看runzhe2000和dick32165401都已经敲完FFT的板子了orz.然后等我准备跟着他们一起写FFT的时候发现他…
题解:CF593D Happy Tree Party Description Bogdan has a birthday today and mom gave him a tree consisting of \(n\) vertecies. For every edge of the tree \(i\) , some number \(x_i\) was written on it. In case you forget, a tree is a connected non-directed…
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我没看,看不懂. 基本思路:我不会. 参考代码:找Oyk老师和Czj老师去. B. The background of water problem 题目大意(大写加粗的水题):给定$N$个学生和他们$K$个科目的成绩$S_i$,再给出各科目$K_i$的权重顺序$Q_i$,求排名之后,拥有id为$X$的…
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <string> #include <bitset> #include <vector> #include <…
2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2561 Description 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条…
Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring Painting standard input/output 1 s, 256 MB    x2519 C Money Transfers standard input/output 1 s, 256 MB    x724 D Tree Construction standard input/outp…
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练. 题解: E666 这个题是让求有多少个子串只含有6.寻找连续的6,然后用n*(n+1)/2求出这一段的子串个数,然后把每一段连续的加起来. 做的时候wa了很多次,原来是在n*(n+1)的地方已经超过int型了,所以需要设置类型为long long. #include <cstdio> #inc…