把每一次输入的一组数字存下来,然后把每个数字出现的组数存下来

然后找只出现过一次的数字a,那么这个数字a不是开头就是结尾,默认为开头(是哪个都无所谓),然后去找和它出现在同一组的两个数字b和c,而b和c同时出现的只有两组,除了已经知道的,就是需要去查找的,然后循环,同时存在的组数,找到两个数字a和b同时出现的组而且不是第一组,找到之后的组的第三个数字,就是要接在后面的数字,然后循环这个操作

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int ma[][];//记录每组数据
  5. vector<int>p[];//记录数字i出现过的组数
  6. int ans[];//记录结果
  7. int main() {
  8. int n;
  9. scanf("%d",&n);
  10. for(int i=; i<=n-; i++) {
  11. int a,b,c;
  12. scanf("%d%d%d",&a,&b,&c);
  13. p[a].push_back(i);
  14. p[b].push_back(i);
  15. p[c].push_back(i);
  16. ma[i][]=a;
  17. ma[i][]=b;
  18. ma[i][]=c;
  19. }
  20. auto a=,b=,c=;
  21. int last=;//记录b和c出现过的组数
  22. for(int i=; i<=n; i++) { //找开头的3个数(b和c的位置不重要)
  23. if(p[i].size()==) {//如果出现的组数是1
  24. int temp=p[i][];//记录出现的组数
  25. last=temp;//
  26. a=i;//记录第一个数字
  27. for(int j=; j<=; j++) {
  28. if(p[ma[temp][j]].size()==)b=ma[temp][j];
  29. else if(p[ma[temp][j]].size()==)c=ma[temp][j];
  30. }
  31. }
  32. if(a)break;
  33. }
  34. int cou=;
  35. ans[++cou]=a;
  36. ans[++cou]=b;
  37. ans[++cou]=c;
  38. while(cou!=n) {
  39. int temp=;//记录组数
  40. for(int i=; i<p[b].size(); i++) { //找b和c相同的组数
  41. for(int j=; j<p[c].size(); j++) {
  42. // 同时出现在同一组 而且不是第一组
  43. if(p[b][i]==p[c][j]&&p[b][i]!=last) {
  44. temp=p[b][i];//更新组数
  45. last=temp;//更新
  46. a=b;//往前移
  47. b=c;//往前移
  48. break;
  49. }
  50. }
  51. if(temp)break;//如果找到了,循环结束
  52. }
  53. for(int i=; i<=; i++) { //
  54. if(ma[temp][i]!=a&&ma[temp][i]!=b) { //如果成功出现的第三个数字
  55. c=ma[temp][i];//第三个数字给c
  56. break;//结束
  57. }
  58. }
  59. ans[++cou]=c;
  60. }
  61. for(int i=; i<=n; i++) printf("%d ",ans[i]);
  62. return ;
  63. }

Codeforces Round #601 (Div. 2) C League of Leesins的更多相关文章

  1. Codeforce 1255 Round #601 (Div. 2) C. League of Leesins (大模拟)

    Bob is an avid fan of the video game "League of Leesins", and today he celebrates as the L ...

  2. 【cf比赛记录】Codeforces Round #601 (Div. 2)

    Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/p ...

  3. Codeforces Round #601 (Div. 2)

    传送门 A. Changing Volume 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/19 22:37:33 */ #include ...

  4. Codeforces Round #601 (Div. 2) E2. Send Boxes to Alice (Hard Version)

    Codeforces Round #601 (Div. 2) E2. Send Boxes to Alice (Hard Version) N个盒子,每个盒子有a[i]块巧克力,每次操作可以将盒子中的 ...

  5. Codeforces Round #601 (Div. 2) E1 Send Boxes to Alice (Easy Version)

    #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int a[N]; int n; bool pr ...

  6. Codeforces Round #601 (Div. 2) D Feeding Chicken

    //为了连贯,采取一条路形式,从第一行开始 也就是s型 #include <bits/stdc++.h> using namespace std; ; char str[MAXN][MAX ...

  7. Codeforces Round #601 (Div. 2) B Fridge Lockers

    //题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环.然后再把剩余的最短的边连接起来 #include<iostream> #include<algorithm> ...

  8. Codeforces Round #601 (Div. 2) A Changing Volume

    好吧,其实我拿到这个题的时候,首先想到了bfs,写完之后,开开森森的去交代码,却在第二个数据就TEL,然后优化半天,还是不行. 最终,我盯着1,2,5发呆半天,wc,然后直接贪心 #include&l ...

  9. Codeforces Round #601 (Div. 2)E(寻找质因子,DP)

    先分解质因数,对于当前a[i],假设当前的质因数为x,这个位置要满足能被k整除,有两个可能,要么是它向后一个转移x%k个,要么是后一个向它转移k-x%k个. 对于每一个a[i]满足后,因为只会对下一个 ...

随机推荐

  1. HDU-1754 I Hate It (树状数组模板题——单点更新,区间查询最大值)

    题目链接 ac代码(注意字符读入前需要注意回车的影响) #include<iostream> #include<cstdio> #include<cstring> ...

  2. c#学习心得(2)

    1.foreach与IEnumerable和IEnumerator的结合使用????? using System; using System.Collections; class Program { ...

  3. Tomcat8.5安装与配置的坑

    本文只是单纯记录一下tomcat配置的坑! 1.下载官网:https://tomcat.apache.org/下载后解压到根目录,盘符任意.但必须有jdk,本人用的是jdk1.8 2.配置环境变量在c ...

  4. generalization error

    泛化误差 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 准与确的关系 bias 偏差:模型越复杂,模型的偏差越小,方差越小,因此会出现overfitt ...

  5. 【daily】日常所遇 - 页面A嵌套页面B

    因为懒,所以直接在http://www.runoob.com写demo测试了. (1)iframe嵌套 虽然可能到现在这中方式都很常用,但是你baidu/google一下会发现.很多人都并不提倡用if ...

  6. MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"

    本文主要针对中小型应用或网站,重点探讨日常程序开发中SQL语句的优化问题,所谓“大数据”.“高并发”仅针对中小型应用而言,专业的数据库运维大神请无视.以下实践为个人在实际开发工作中,针对相对“大数据” ...

  7. P1642 规划 [01分数规划]

    裸题,考虑size完了跑一个树上背包,这题没了. // by Isaunoya #include <bits/stdc++.h> using namespace std; #define ...

  8. Petya and Array CodeForces - 1042D

    很不错的一道题 给你一个长度为n的数组,问共有多少个区间满足区间之和小于给定的数t 这种题一般做法肯定是枚举,固定左端点枚举右端点,枚举的过程需要优化,否则就是n方 这道题我先求一个前缀和,然后逆着枚 ...

  9. git项目分支管理

    分支管理 创建项目时,会针对不同环境创建两个常设分支(也可以算主分支,永久不会删除): master :生产环境的稳定分支,生产环境基于该分支构建.仅用来发布新版本,除了从 release 测试分支或 ...

  10. 解决NahimicSvc32.exe与bilibili直播姬的音频不兼容的问题

    某次测试哔哩哔哩直播姬的时候发现系统声音采集异常的错误 NahimicSvc32.exe是NahimicService下的程序,奇怪的是我的本本所有硬件没有一个微星有关系,怎么就装上了微星的服务程序? ...