【Contest Hunter 5302】金字塔】的更多相关文章

[原题链接]传送门 [题解思路] 1.考虑如何将序列与树相对应,想到类似dfs序和欧拉序,同一个子树对应序列连续 2.暴力分子树过于复杂,考虑简化(划重点: 若当前区间为[l,r],考虑第一颗子树所在的区间为[l+1,k],然后剩下的若干区间存在于[k+1,r]中. 3.考虑状态的转移,合并两个状态需要乘法原理 4.考虑初值和边界 [code] #include<bits/stdc++.h> using namespace std; #define File "" #def…
CH 5302 金字塔 \(solution:\) 很神奇的一道题目,当时看到还以为是一道字符串求回文子串的题目.但是数据范围很小,而且只知道回文串也不好做.但是我们观察可得,如果是深度搜索便利,那么它经过的子树应该是从左到右排列有序的,于是我们想到线性DP.然后我们发现似乎可以单独求某一段的便遍历方式然后合并,这就是区间DP的标志啊!于是我们考虑设 \(F[l][r]\) 表示从第 \(l\) 到第 \(r\) 个字符可以有的子树遍历方案(注意既然是子树遍历方案,那么 \(l\)字符和 $r…
题目 Contest Hunter 3101 阶乘分解 原题传送门 题目分析 这里介绍一个本蒟蒻自己\(yy\)出来的方法. 我们发现,对于某一个单个的整数\(n\),若\(n\)能被某一个数\(x\)整除,那么我们可以看作\(++count[x]\).且将\(n\)变为\(n/x\). 这时就相当有了两个\(n/x\)继续分解,就相当于缩小了问题规模!!! Code: #include<cstdio> #include<bitset> //#include<bits/std…
题目链接: http://ch.ezoj.tk/contest/%E3%80%90%E5%BC%B1%E7%9C%81%E8%83%A1%E7%AD%96%E3%80%91Round%20%230/Flower%20Dance 题意: 在一个n*m的地图上,两个人同时从左上角走到右下角,其中有一些格子是障碍,不能走. 并且,两个人走的路径不能相交. 求总方案数. 题解: 昨天晚上做这道题一点靠谱的思路都没有.就是不相交路线那里被弄死了.. 后来听了讲解才发现..代码如此简单! 就是要开动脑筋啊!…
[题目链接] http://contest-hunter.org:83/contest/CH%20Round%20%2317/%E8%88%9E%E5%8A%A8%E7%9A%84%E5%A4%9C%E6%99%9A [算法] 不难发现,本题是要我们求出二分图最大匹配的不可行边,我们可以将此问题转化为求可行边的补集 那么,怎样求二分图的可行边? 我们可以先来考虑一个简化的情况 : 二分图的最大匹配为完备匹配 我们求出任意一组二分图最大匹配,将匹配边(x,y)看作y到x的有向边,将非匹配(y,x)…
orz lydrainbowcat [Problem A]「艦これ市」70万幕后交易事件 排序机器=-=.重要的是相同的处理. 我们可以从小到大添加数字,然后维护一个位置的序列.每一种相等的数字都在一块.如果我们要添加一个新的数字,要把位置>它的数字全部弹出,而且要把小于它的数字(在队头)全部弹出,这样才能保证正确性和最优性. #include <iostream> #include <cstdio> #include <cstring> #include <…
1401 兔子与兔子 0x10「基本数据结构」例题 描述 很久很久以前,森林里住着一群兔子.有一天,兔子们想要研究自己的 DNA 序列.我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母),然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样.注意两个兔子一模一样只可能是他们的 DNA 序列一模一样. 输入格式 第一行一个 DNA 字符串 S.接下来一个数字 m,表示 m 次询问.接下来 m…
Genius ACM Advanced CPU Manufacturer (ACM) is one of the best CPU manufacturer in the world. Every day, they manufacture n CPU chips and sell them all over the world. As you may know, each batch of CPU chips must pass a quality test by the QC departm…
题面 传送门 思路 首先看看我们到底要干什么:有$1e6$次询问,遍历$i$,每次要求一个形如$b_i \ast a_j - a_i \ast b_j$的东西的最大值 考虑如果一个$j$的决策在当前的$i$上比$k$这个位置更优会得到什么: $b_i \ast a_j - a_i \ast b_j > b_i \ast a_k - a_i \ast b_k$ $b_i \ast (a_j-a_k) > a_i \ast (b_j-b_k)$ $\frac{b_i}{a_i} > \fra…
题面 传送门 思路 又双叒叕是一道差分题我没想出来......记录一下 首先这个"所有祖先都比自己小"等价于"父亲比自己小" 这题的基础dp方程很显然,$dp[u][i]$表示当前在点$u$,且点$u$的值是$i$的时候最小修改几个点 然后我们发现每个$dp[u]$可以取到的有意义的值只有几个,所以我们考虑开一个$set$来维护这些取值和它们对应的$dp$值 这样并不方便转移:我们发现可以把$dp$值差分一下,每个$set$元素维护取值,以及这个取值的$dp$值和上…
描述 在一片广袤无垠的原野上,散落着N块磁石.每个磁石的性质可以用一个五元组(x,y,m,p,r)描述,其中x,y表示其坐标,m是磁石的质量,p是磁力,r是吸引半径.若磁石A与磁石B的距离不大于磁石A的吸引半径,并且磁石B的质量不大于磁石A的磁力,那么A可以吸引B.小取酒带着一块自己的磁石L来到了这篇原野的(x0,y0)处,我们可以视为磁石L的坐标为(x0,y0).小取酒手持磁石L并保持原地不动,所有可以被L吸引的磁石将会被吸引过来.在每个时刻,他可以选择更换任意一块自己已经获得的磁石(当然也可…
题目传送门 Hamilton路径的定义:从0(起点)到n-1(终点)不重不漏地经过每个点恰好一次. 由于数据范围非常小,考虑状压.如NOIP2017宝藏一题,把状态压缩设为n个点是否已到达的二进制数.1表示到达过,0表示没到达过. 设计状态$f[i][j]$表示当前状态为i,目前处于点j的最短路径.在每一个状态下,我们枚举当前在哪里,并枚举当前在的这个地方是由哪个状态转移过来的.(即枚举的这两个地方其实都已经经过了.)那么之前的状态可以表示成$i xor (1<<j)$. 则有转移$dp[i]…
将所有石头按距离远近排序,将所有取到的时候扔进堆里维护最大磁力强度. 贪心,每次用强度最强的磁石尝试吸引地上的石头,扫完区间以后,这块石头就再也不会用到了. 在此基础上可以做些小优化,比如说优化未取石头区间的起始点,比如说如果强度更小的石头范围也更小就不用它,等等. 比标解分块跑得还要快2333333 分块解法链接:http://www.cnblogs.com/SilverNebula/p/5929668.html #include<iostream> #include<cstdio&g…
没什么好写的.写写这题吧 拆点,把一个防御塔拆成m个,表示第i次攻击.瞎yy就好啊 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; struct node { int x,y,next; }a[];]; void ins(int…
5302 金字塔 0x50「动态规划」例题 描述 虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下.经过多年的研究,科学家对这座金字塔的内部结构已经有所了解.首先,金字塔由若干房间组成,房间之间连有通道.如果把房间看作节点,通道看作边的话,整个金字塔呈现一个有根树结构,节点的子树之间有序,金字塔有唯一的一个入口通向树根.并且,每个房间的墙壁都涂有若干种颜色的一种.探险队员打算进一步了解金字塔的结构,为此,他们使用了一种特殊设计的机器人.这种机器人会从入口进入金字塔,之后对金字…
POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2513 Accepted: 960 Description Mr. Young wishes to take a picture of his class. The students will…
NOI2014结束了,我卡线登上了领奖台... 这是我第一次NOI,我觉得我收获了很多东西: 1.考前心态不重要,重要的是实力 真正考试的时候是顾不得想其他事情的 2.测试数据是人出的!不是随机的!不要想着自己的算法在随机情况下表现很好就怎么样, 也许你的算法只会在XX情况下很慢,但测试数据就正好是这样,专门卡你! 3.考场策略有问题,我本着clj说的先通读一遍题,仔细想一想算法的方法,考了两天 发现每天码完第一题后就3h+了,剩下的时间根本来不及去好好搞剩下的题, 结果导致我day1t2 sb…
D1T1> 神奇的幻方 模拟即可. #include <cstdio> #include <cstring> #include <algorithm> #define rep(i, a, b) for (int i = a; i <= b; i++) #define drep(i, a, b) for (int i = a; i >= b; i--) #define REP(i, a, b) for (int i = a; i < b; i++)…
6201 走廊泼水节 0x60「图论」例题 描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水龙头都可以经过小道到达其他水龙头(这是一棵树,你应该懂的..).但是OIER门为了迎接中中的挑战,决定修建一些个道路(至于怎么修,秘密~),使得每个水龙头到每个…

qwq

\[{\color{coral}{\texttt{ 邪王真眼是最强的!}}}\] \[{\color{coral}{\texttt{ 爆裂吧现实----}}}\] \[{\color{coral}{\texttt{ 粉碎吧精神--}}}\] \[{\color{coral}{\texttt{ 放逐这个世界!!!}}}\] \[{\color{coral}{{My\ }\color{blue}{Blog}}}\] \[{\color{purple}{\texttt{Poj}}}\] \[{\col…
0601 Genius ACM 0x00「基本算法」例题 描述 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下: 从集合 S 中取出 M 对数(即 2∗M 个数,不能重复使用集合中的数,如果 S 中的整 数不够 M 对,则取到不能取为止),使得“每对数的差的平方”之和最大,这个最大值 就称为集合 S 的“校验值”. 现在给定一个长度为 N 的数列 A 以及一个整数 T.我们要把 A 分成若干段,使得 每一段的“校验值”都不超过 T.求最少需要分成几段. Advanced CPU…
5101 LCIS 0x50「动态规划」例题 描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了.小沐沐说,对于两个数列A和B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了.奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列.不过,只要告诉奶牛它的长度就可以了.数列A和B的长度…
题目链接 题目大意:给定\(n\)个数和\(m\)个求区间众数的询问,强制在线 这题我\(debug\)了整整一个下午啊..-_- 从14:30~16:45终于\(debug\)出来了,\(debug\)的难度主要就在\(Luogu\)数据不能下载,然后\(Contest Hunter\)的数据又太大了(最小的\(n=500,m=1000\)),只能人工查错,一行行检查代码,哎...写不出正解还是算了吧,考试时可没有这么多时间\(debug\). 做法:先离散化,然后分块,每块大小\(\sqrt…
这一章不太满意啊.. 还是有点痛苦,但就是做的挺慢啊... 1.就是例题 2.括号画家 感觉这种提高组类型的细节题都没什么信心啊,fail了几次才A #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; ]; ],sum[]; int…
layout: post title: 2018 German Collegiate Programming Contest (GCPC 18) author: "luowentaoaa" catalog: true tags: mathjax: true - codeforces 传送门 付队博客 C.Coolest Ski Route (记忆化搜索) 题意 给出一个有向图,求出一个权值最长的链, 题解 暴力dfs会超时,所以直接储存每个起点能走到的最远距离 #include<…
$$2015\ German\ Collegiate\ Programming\ Contest\ (GCPC 15) + POI 10-T3$$ \(A.\ Journey\ to\ Greece\) 状压DP,TSP,先考虑找出这些关键点之间的最短路,然后就是旅行商问题,其中可以用一次\(taxi\),考虑\(dp\)状态为\(f[i][msk][tag]\),表示当前所在位置为\(i\)点,已经经过的节点集合为\(msk\),是否用过\(taxi\)的情况下,所化的最小时间,最后再从走遍了…
“.Net 社区虚拟大会”(dotnetConf) 2016 今天凌晨在Channel9 上召开,在Scott Hunter的30分钟的 Keynote上没有特别的亮点,所讲内容都是 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新.开源.跨平台 的具体化,都是基本的普及知识,唯一振奋的是6月27日.NET Core RTM 了. 还提到了MSBuild 整合到不同的开发环境,包括Mono,.NET Core,Xamarin等 6月27号,在Red Hat大会上面…
Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则,法则,定律等. 这一建构应从界定内涵出发,从器物.制度和意识形式三个层面厘定其表征:并结合发展轨迹,通过比较,探索.建构有利于“本土”文化,必须着力追寻能推动这一文化特质生成的进路,并以发挥其实践功效为归宿点和落脚点. 作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名:…
    Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and made an amazing discovery: there are only 16 types of programming contest problems! Furthermore, the top several comprise almost 80% of the problems s…
Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2390    Accepted Submission(s): 578 Problem Description Teacher Mai has a kingdom with the infinite area. He has n students guard…