Luogu P5022 旅行 搜索+贪心】的更多相关文章

好吧...一直咕..现在才过...被卡常卡到爆... 写的垃圾版本,$n^2$无脑删边..可以发现走出来的是棵树...更优秀的及数据加强版先咕着...一定写.qwq #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<vector> #define ll long long #define R register int <<…
题目连接:https://www.luogu.org/problemnew/show/P5022 \(NOIP2018 DAY2T1\) 考场上只写了60分,很容易想到当 m = n - 1 时的树的做法. 读题推一下样例不难发现,如果选择一个分支节点就必须走到头--直到一个节点没有子树. 那么我们就可以贪心的求得最小字典序序列,每次选择节点编号最小的走. 即对当前节点的所有子节点排序选择最小编号的往下进行即可. 60分code: #include <cstdio> #include <…
开始写复赛题了 先放张图纪念我惨烈的卡常之路 不说了,简直悲伤 题目链接 思路么..不想写了 Code //不要在意四十行超级加速,卡常用的 #include<bits/stdc++.h> #pragma GCC optimize(3) #pragma GCC target("avx") #pragma GCC optimize("Ofast") #pragma GCC optimize("inline") #pragma GCC o…
[题解]P5022 旅行 当给定你一颗树的时候,这题就是一道送分题,凉心啊! 但是给定你一颗基环树呢? 暴力断环直接跑. 但是数据范围\(n\le 1000\) 乱做就完事了. 考场上这样想的,对于\(m=n​\)的情况,得出来的最佳方案一定没有经过一条树边.那么我们直接枚举那条边不能走,直接\(O(n^2)​\)过就好了. 不过这样的算法有一个\(bug\),是因为\(dfs\)在节点上需要枚举哪个点最小,很可能被卡到\(O(n^3)\),但是\(ccf\)今年换配置了,而且不可能每个点都要枚…
[CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P2667 这个题练一练综合思想还是不错的...(然而蒟蒻不会啊) 做法 肯定是在能完成某些订单的情况下使自己生产力越高越好是吧(一个大致的贪心方向) 但是我们不知道自己到底应该怎么去决定提高生产力时间 那么换个角度,不从时间来看,从订单上来看 贪心 我们假设一定要完成订单\(1-n\) 那么应该如何贪心…
题目链接:https://www.luogu.org/problem/P5022 这道题目一开始看的时候没有思路,但是看到数据范围里面有一个: \(m = n-1\) 或 \(m = n\) ,一下子有了思路. 当 \(m = n-1\) 时,这就是一棵树,以1为根节点进行搜索,每次优先访问编号小的点即可. 当 \(m = n\) 时,可知只有一个环,找到环中对应的所有边,然后遍历每一条环中的边,假设删除它,然后就变成了一棵树. 时间复杂度为:\(O(n^2)\) . 实现代码如下: #incl…
P3496 [POI2010]GIL-Guilds 题意 给一张无向图,要求你用黑(\(K\))白(\(S\))灰(\(N\))给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻:对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成功.成功则输出TAK并输出每个点的颜色,否则输出一行NIE. 思路 我来找一道水题...艹怎么这么难. --Mercury 这是一道结论题,看起来很不可做,但实际上只需要分析一下就会发现并不难. 对于一张有…
原题链接  https://www.luogu.org/problem/P5022 本着快csp了,做点往年的NOIp的题试试水来着,没想到水这么深 难度还挺大的,耗了我一天的时间(可能是我太菜了) 题目大意: 给你 n 个点和 m 条边,问如何遍历每个结点才能使最后的字典序最小,注意只有遍历完一棵字树的所有结点后才能回溯到他的父亲结点: 前 60 pts: 作为 NOIp2018 day2T1 来说,部分分确实给的挺足的,这 60 pts 就是哦: 看到 m = n-1 说明这是一棵树,考虑用…
题目:https://www.luogu.org/problemnew/show/P2540 发现如果没有顺子,剩下的可以贪心.所以搜索顺子怎么出,然后贪心. 这样只能过不加强版.原因是贪心的时候难以弄3=1+2.3应该是 3带* 还是拆开让4带上? 如这个数据(×后面是个数):3×3,4×1,6×4,7×3,9×1,10×2,11×1,12×4,13×3 正解应该是把一个3拆成1+2,然后两次4带2,两次3带2.但贪心似乎做不了. 所以应该dp!记录1,2,3,4,王各有几个,就能把“拆”体现…
题目:https://www.luogu.org/problemnew/show/P2668   https://www.luogu.org/problemnew/show/P2540 首先,如果没有顺子,那么有贪心最优解: 所以先搜索顺子,再贪心求剩余的出牌方案: 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace s…
[luogu]P1315 [NOIP2011]观光公交 ——!x^n+y^n=z^n 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2.3 .4 ……n 号景点.从第 i 号景点开到第 i+1 号景点需要 Di 分钟.任意时刻,公交车只能往前开,或在景点处等待. 设共有m 个游客,每位游客需要乘车1 次从一个景点到达另一个景点,第i 位游客在Ti…
独木舟上的旅行 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量.我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数.现在请写一个程序,读入独木舟的最大承载量.旅客数目和每位旅客的重量.根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果.   输入 第一行输入s,表示测试数据的组数:每…
题目链接 Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He wants to charge them with Balala Power (he could change each character ranged from a to z into each number ranged from 0 to 25, but each two differen…
考试的时候写了个dfs找出来了,最后处理的时候想到了贪心,但是正确性没有想通.然后想了想动规,也没想通.最后没办法,用状态的话用了个状压,弄了40分. 正解是bfs+贪心.Dfs也有过的. 下面题解引用自他人: 整体的思路是这样的: 从第一层的每一个点开始往下做一次搜索,每一次搜索可以覆盖到最后一行的一段,我们就可以把它看成是一条线段: 做完搜索之后我们就得到了一坨线段..然后这就变成了一个线段覆盖问题,用最少的线段来把最后一行盖满,当然也存在无论如何都盖不满的情况.. 下面来说说线段覆盖的思路…
Waca loves maths,.. a lot. He always think that 1 is an unique number. After playing in hours, Waca suddenly realize that every integer can be represented by digit '1', plus operator and minus operator. For example, 1534 can be represented as 1111 +…
Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 141    Accepted Submission(s): 17 Problem Description In an n∗m maze, the right-bottom corner is the exit (position (n,m) is the exit).…
发现大部分题解都是O(n^2)的复杂度,这里分享一个O(n)复杂度的方法. 题目传送 首先前60%的情况,图是一棵无根树,只要从1开始DFS,每次贪心走点的编号最小的点就行了.(为什么?因为当走到一个点u时,若不把以它为根的子树的所有点都遍历一遍的话,回溯到u的父亲后,就再也没可能遍历u的没有遍历过的儿子了.) 再看剩下40%的情况,由于题目保证图是一个无向连通图,当 边数 等于 点数减一 时图必为树,在此基础上再多加一条边,就在一棵树的基础上形成一个环(为了方便,后文仍会提到树,而后文的树指的…
P1041 传染病控制 题意 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带者,更没有研制出疫苗以保护易感人群.于是,蓬莱国的疾病控制中心决定采取切断传播途径的方法控制疾病传播.经过\(WHO\)(世界卫生组织)以及全球各国科研部门的努力,这种新兴传染病的传播途径和控制方法已经研究清楚,剩下的任务就是由你协助蓬莱国疾控中心制定一个有效的控制办法…
独木舟上的旅行 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量.我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数.现在请写一个程序,读入独木舟的最大承载量.旅客数目和每位旅客的重量.根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果.   输入 第一行输入s,表示测试数据的组数:每…
题意&题解: http://www.cnblogs.com/wuminye/p/3245546.html 说实话看了题解觉得很简单,但是比赛的时候真的是毫无头绪. 然而印象中做过一道类似的二进制贪心的题目.竟然……没想到……sigh……太弱辣!!! 应该思考题目为什么要给2^i,而不是轻易的认为是为了增加难度= = 笨死了555- //补题 #include <cstdio> #include <cstring> #include <algorithm> #in…
独木舟上的旅行 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量.我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数.现在请写一个程序,读入独木舟的最大承载量.旅客数目和每位旅客的重量.根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果.   输入 第一行输入s,表示测试数据的组数:每…
In one of the games Arkady is fond of the game process happens on a rectangular field. In the game process Arkady can buy extensions for his field, each extension enlarges one of the field sizes in a particular number of times. Formally, there are n…
LOJ2422 NOIP2015 斗地主 LINK 题目大意很简单,就是问你斗地主的一分手牌最少多少次出完 然后我们发现对于一种手牌状态,不考虑顺子的情况是可以贪心做掉的 然后我们直接枚举一下顺子出牌情况就可以了 LOJ上的数据随便写点基本贪心就行了 如果想过UOJ上的加强版的话还是把中间那一部分毒瘤的特判更优情况加上吧 当然也有个Smallfat大神用DP做掉的 我感觉DP更严谨一些,但是毕竟贪心好写嘛 #include<bits/stdc++.h> using namespace std;…
题目描述 小明要去一个国家旅游.这个国家有N个城市,编号为1-N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止. 所以他就需要选择最先到达的城市,并制定一条路线以城市i为终点,使得线路上除了第一个城市,每个城市都在路线前一个城市东面,并且满足这个前提下还希望游览的城市尽量多. 现在,你只知道每一条道路所连接的两个城市的相对位置关系,但并不知道所有城市具体的位置.现在对于所有的i,都需要你为小明制定一条路线,并求出以城市i为终点最多能够游览多少个城市. 输入输出格式 输…
题目链接:https://www.luogu.org/problemnew/show/P1137 topsort + DP #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 100001; struct edge{ int next,…
这个东西考试的时候一眼以为状压就压炸了考试又了一下午.....最后我打出来发现后几个点10min都过不去,我大概算了一下,可能是吧.......最后一脸懵逼的我去怂了正解,我们发现只要确定了顺子就可以贪心了,所谓贪心就是在扔相同数码牌的基础上从四带二(对),四带二,三带二,三带一,开始贪心,我们的二,一一定是它本身就是这么大,因为,如果不是的话我们只是浪费了弹药却不能得到优惠,而且由于一个四可以带两个一样的单张,我们就不会出现三拆四捡的情况,我们可以把它们看成四类物品,一类是一个的,一类是两个的…
国王游戏 题目链接:国王游戏 ps:题目数据说明了要写高精度. 这个题的答案是\(a.l * a.r < b.l * b.r\)按照这个进行排序 题解中大部分只是如何证明排序是: \(a.l * a.r < b.l * b.r\) 我来利用上面的贪心性质来推一下. 设国王左手的数为L,右手的数没什么用..... 还是对于两个人来说. 答案为: 第一个人排在第一位,第二个人排在第二位. 第二个人排在第一位,第二个人排在第一位. 两种情况下的结果大的那个是不会被选择的排在第一位的. 也就是 如果\…
题目链接:P2123 皇后游戏 如果证明这个题为什么是贪心的话,我是不会的,但是一看这个题目就是一个贪心,然后满足贪心的性质: 都能从两个人(东西)扩展到n个人(东西) 一定能从相邻状态扩展到不相邻的状态 ---摘自rain_falls 其实就是满足贪心的题目一定满足两个人的情况,就是由两个人推广到n个人. 我们先想一下两个人时的情况. 答案就是这个: \(min(max(a_1+b1,a_1+a_2)+b_2,max(a_2+b_2,a_1+a_2)+b_1)\) 如果前一项小那么就让第一个人…
题目描述 cjwssb知道是误会之后,跟你道了歉.你为了逗笑他,准备和他一起开始魔法.不过你的时间不多了,但是更惨的是你还需要完成n个魔法任务.假设你当前的时间为T,每个任务需要有一定的限制ti表示只有当你的T严格大于ti时你才能完成这个任务,完成任务并不需要消耗时间.当你完成第i个任务时,你的时间T会加上bi,此时要保证T在任何时刻都大于0,那么请问你是否能完成这n个魔法任务,如果可以,输出+1s,如果不行,输出-1s. 输入输出格式 输入格式: 第一行:一个整数Z,表示有Z个测试点. 对于每…
解题思路:给出船的最大载重量w,和n个人,每只船最多可以乘坐两个人,问怎样坐船使得安排的船只的数量最少.这n个人的体重为a1,a2,a3,---,an-1,an首先将体重按升序排列好,再考虑最重的人,如果当前数列中连乘最轻的人都不能和他共乘一只船,那么他就只有一个人乘船了.                                                                 a[i](代表当前最轻的人)           a[j]代表当前最重的人  则j从n开始遍历,…