开始写复赛题了

先放张图纪念我惨烈的卡常之路

不说了,简直悲伤

题目链接

思路么。。不想写了

Code#

  1. //不要在意四十行超级加速,卡常用的
  2. #include<bits/stdc++.h>
  3. #pragma GCC optimize(3)
  4. #pragma GCC target("avx")
  5. #pragma GCC optimize("Ofast")
  6. #pragma GCC optimize("inline")
  7. #pragma GCC optimize("-fgcse")
  8. #pragma GCC optimize("-fgcse-lm")
  9. #pragma GCC optimize("-fipa-sra")
  10. #pragma GCC optimize("-ftree-pre")
  11. #pragma GCC optimize("-ftree-vrp")
  12. #pragma GCC optimize("-fpeephole2")
  13. #pragma GCC optimize("-ffast-math")
  14. #pragma GCC optimize("-fsched-spec")
  15. #pragma GCC optimize("unroll-loops")
  16. #pragma GCC optimize("-falign-jumps")
  17. #pragma GCC optimize("-falign-loops")
  18. #pragma GCC optimize("-falign-labels")
  19. #pragma GCC optimize("-fdevirtualize")
  20. #pragma GCC optimize("-fcaller-saves")
  21. #pragma GCC optimize("-fcrossjumping")
  22. #pragma GCC optimize("-fthread-jumps")
  23. #pragma GCC optimize("-funroll-loops")
  24. #pragma GCC optimize("-fwhole-program")
  25. #pragma GCC optimize("-freorder-blocks")
  26. #pragma GCC optimize("-fschedule-insns")
  27. #pragma GCC optimize("inline-functions")
  28. #pragma GCC optimize("-ftree-tail-merge")
  29. #pragma GCC optimize("-fschedule-insns2")
  30. #pragma GCC optimize("-fstrict-aliasing")
  31. #pragma GCC optimize("-fstrict-overflow")
  32. #pragma GCC optimize("-falign-functions")
  33. #pragma GCC optimize("-fcse-skip-blocks")
  34. #pragma GCC optimize("-fcse-follow-jumps")
  35. #pragma GCC optimize("-fsched-interblock")
  36. #pragma GCC optimize("-fpartial-inlining")
  37. #pragma GCC optimize("no-stack-protector")
  38. #pragma GCC optimize("-freorder-functions")
  39. #pragma GCC optimize("-findirect-inlining")
  40. #pragma GCC optimize("-fhoist-adjacent-loads")
  41. #pragma GCC optimize("-frerun-cse-after-loop")
  42. #pragma GCC optimize("inline-small-functions")
  43. #pragma GCC optimize("-finline-small-functions")
  44. #pragma GCC optimize("-ftree-switch-conversion")
  45. #pragma GCC optimize("-foptimize-sibling-calls")
  46. #pragma GCC optimize("-fexpensive-optimizations")
  47. #pragma GCC optimize("-funsafe-loop-optimizations")
  48. #pragma GCC optimize("inline-functions-called-once")
  49. #pragma GCC optimize("-fdelete-null-pointer-checks")
  50. using namespace std;
  51. const int MAXN=5e3+10,INF=0x3f3f3f3f;
  52. struct node{
  53. int next,to;
  54. }edge[MAXN<<1];
  55. bool vis[MAXN],better,flag;
  56. vector<int> v[MAXN];
  57. int cnt,Cnt,n,m,del1,del2,x,y;
  58. int head[MAXN],ans[MAXN],Ans[MAXN];
  59. int read()
  60. {
  61. int f=1,a=0;
  62. char ch;
  63. ch=getchar();
  64. while(ch<'0'||ch>'9'){
  65. if(ch=='-'){
  66. f=-f;
  67. }
  68. ch=getchar();
  69. }
  70. while(ch>='0'&&ch<='9'){
  71. a=a*10+ch-'0';
  72. ch=getchar();
  73. }
  74. return f*a;
  75. }
  76. void addedge(int from,int to)
  77. {
  78. edge[++cnt].to=to;
  79. edge[cnt].next=head[from];
  80. head[from]=cnt;
  81. }
  82. void dfs(int x,int fa)
  83. {
  84. vis[x]=1; Ans[++Cnt]=x;
  85. // cout<<Cnt<<" "<<x<<endl;
  86. for(int i=0;i<v[x].size();i++){
  87. int y=v[x][i];
  88. if(vis[y]||(x==del1 && y==del2)||(x==del2 && y==del1)||y==fa) continue;
  89. dfs(y,x);
  90. }
  91. }
  92. int main()
  93. {
  94. // freopen(".in","r",stdin);
  95. // freopen(".out","w",stdout);
  96. // ios::sync_with_stdio(0);
  97. n=read(),m=read();
  98. for(int i=1;i<=m;i++){
  99. x=read(),y=read();
  100. // v[x].push_back(y);
  101. // v[y].push_back
  102. addedge(x,y);
  103. addedge(y,x);
  104. }
  105. for(int i=1;i<=n;++i){
  106. for(int j=head[i];j;j=edge[j].next){
  107. v[i].push_back(edge[j].to);
  108. }
  109. sort(v[i].begin(),v[i].end());
  110. }
  111. memset(ans,INF,sizeof(ans));
  112. if(m==n-1){
  113. dfs(1,0);
  114. for(int i=1;i<=n;++i){
  115. printf("%d ",Ans[i]);
  116. }
  117. }else{
  118. for(int i=1;i<=m;++i){
  119. Cnt=0,flag=0;
  120. memset(vis,0,sizeof(vis)),flag=0;
  121. del1=edge[(i<<1)-1].to;
  122. del2=edge[i<<1].to;
  123. dfs(1,0);
  124. if(Cnt==n){
  125. for(int j=2;j<=n;++j){
  126. if(Ans[j]>ans[j]) break;
  127. if(Ans[j]<ans[j]){
  128. flag=1;
  129. break;
  130. }
  131. }
  132. if(flag){
  133. for(int j=1;j<=n;++j){
  134. ans[j]=Ans[j];
  135. }
  136. }
  137. }
  138. }
  139. for(int i=1;i<=n;++i){
  140. printf("%d ",ans[i]);
  141. }
  142. cout<<endl;
  143. }
  144. return 0;
  145. }

Luogu P5022 旅行的更多相关文章

  1. 【luogu P5022 旅行】 题解

    题目连接:https://www.luogu.org/problemnew/show/P5022 \(NOIP2018 DAY2T1\) 考场上只写了60分,很容易想到当 m = n - 1 时的树的 ...

  2. Luogu P5022 旅行 搜索+贪心

    好吧...一直咕..现在才过...被卡常卡到爆... 写的垃圾版本,$n^2$无脑删边..可以发现走出来的是棵树...更优秀的及数据加强版先咕着...一定写.qwq #include<cstdi ...

  3. 【题解】 P5022旅行

    [题解]P5022 旅行 当给定你一颗树的时候,这题就是一道送分题,凉心啊! 但是给定你一颗基环树呢? 暴力断环直接跑. 但是数据范围\(n\le 1000\) 乱做就完事了. 考场上这样想的,对于\ ...

  4. P5022 旅行

    原题链接  https://www.luogu.org/problem/P5022 本着快csp了,做点往年的NOIp的题试试水来着,没想到水这么深 难度还挺大的,耗了我一天的时间(可能是我太菜了) ...

  5. 洛谷P5022 旅行 题解 去环/搜索

    题目链接:https://www.luogu.org/problem/P5022 这道题目一开始看的时候没有思路,但是看到数据范围里面有一个: \(m = n-1\) 或 \(m = n\) ,一下子 ...

  6. 【luogu P1137 旅行计划】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1137 topsort + DP #include <queue> #include <cs ...

  7. 洛谷 P5022 旅行——题解

    发现大部分题解都是O(n^2)的复杂度,这里分享一个O(n)复杂度的方法. 题目传送 首先前60%的情况,图是一棵无根树,只要从1开始DFS,每次贪心走点的编号最小的点就行了.(为什么?因为当走到一个 ...

  8. luogu P1137 旅行计划

    题目描述 小明要去一个国家旅游.这个国家有N个城市,编号为1-N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止. 所以他就需要选择最先到达的城市,并制定一条路线以城市i为终 ...

  9. P5022 旅行 (NOIP2018)

    传送门 先考虑是一颗树的情况 求最小的 dfs 序 显然按儿子编号从小到大dfs 如果有多一条边怎么办 显然会有一条边不用走 直接枚举删那条边然后每次都暴力 dfs 复杂度 $O(n^2)$ 注意每个 ...

随机推荐

  1. 【CF241E】Flights(差分约束)

    [CF241E]Flights(差分约束) 题面 CF 有\(n\)个点\(m\)条边,要求给每条边赋一个\(1\)或\(2\)的边权,判断能否使得每一条\(1\)到\(n\)的路径的权值和都相等,如 ...

  2. powershell 提取 spotlight 图片

    powershell脚本来源于网络,有一些调整. # 将复制出来的缓存图片保存在下面的文件夹 $dir = Split-Path -Parent $MyInvocation.MyCommand.Def ...

  3. [debug] 解决在C++编写过程中的“找到一个或多个多重定义的符号”

    如下图: 其在 common.h 中定义了一个变量a ,然后在两个 cpp 文件中都是用它. 在这种情况下,链接时就会出现 “找到一个或多个多重定义的符号”. 解决方案: 在某个cpp文件中定义,然后 ...

  4. java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap报错解决

    在使用 commons-beanutils-1.9.2.jarcommons-logging-1.1.1.jar 的时候报错 java.lang.NoClassDefFoundError: org/a ...

  5. JAVA的基本语法1

    1.关键字 关键字的定义和特点 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(单词). 就是在java语言编程的时候,在关键的地方使用的单词,体现关键的地方的含义.这些单词都是特有的,并且 ...

  6. JDK1.8新特性——Collector接口和Collectors工具类

    JDK1.8新特性——Collector接口和Collectors工具类 摘要:本文主要学习了在Java1.8中新增的Collector接口和Collectors工具类,以及使用它们在处理集合时的改进 ...

  7. JS基础语法---分支语句总结

    分支语句: if语句:一个分支 if-else语句:两个分支,最终只执行一个分支 if-else if-else if...语句: 多个分支,也是只会执行一个 switch-case语句:多分支语句, ...

  8. 一则SQL优化案例

    原始sql: select CASE ) counts ,) else deadline end as deadline from t_product_credit) c group by sort ...

  9. 熟悉的味道——从Java单例写到C++单例

    设计模式中,单例模式是常见的一种.单例模式需要满足以下两个条件: 保证一个类只能创建一个示例: 提供对该实例的全局访问点. 关于单例最经典的问题就是DCL(Double-Checked Lock),今 ...

  10. Python—基础之杂货铺

    列表.元组.字典之前的互相转换 列表与元组的转换 # 列表转换成元组:使用 tuple 函数 num_list = [3, 6, 9] num_tuple = tuple(num_list) prin ...