C - League of Leesins
乱搞一发,,竟然过了!!!
题目大意:输入一个整数n,然后n-2行,每一行3个数字,表示一个数组中连续的3个数字,然后将这3个数字的顺序打乱,然后再将这个n-2行打乱,要求还原数组。
题解:先找到前3个数字,第一个数字跟最后一个数字出现的次数肯定为1,所以直接找出现次数为1的点就可以了。然后第二个点的出现次数肯定为2,第三个点的出现次数为3,然后根据第二个点和第三个点去找第四个点,,,用vector来记录位置。
#include<bits/stdc++.h>
using namespace std;
const int N=1E5+;
int arrl[N],arrm[N],arrr[N];
int mark[N];
vector<int >ve[N];
int main()
{
int n;
cin>>n;
for(int i=;i<=n-;i++) {
cin>>arrl[i]>>arrm[i]>>arrr[i];
ve[arrl[i]].push_back(i);
ve[arrm[i]].push_back(i);
ve[arrr[i]].push_back(i);
}
int pos1,pos2,pos3;
int x;
for(int i=;i<=n;i++) {
if(ve[i].size()==) {
pos1=i;
x=ve[i][];
if(ve[arrl[x]].size()==) pos2=arrl[x];
if(ve[arrr[x]].size()==) pos2=arrr[x];
if(ve[arrm[x]].size()==) pos2=arrm[x];
if(ve[arrl[x]].size()==) pos3=arrl[x];
if(ve[arrr[x]].size()==) pos3=arrr[x];
if(ve[arrm[x]].size()==) pos3=arrm[x];
break;
}
}
int pos=;
cout<<pos1<<" "<<pos2<<" "<<pos3<<" ";
while(){
if(pos>n) break;
else {
for(int i=;i<ve[pos2].size();i++){
if(ve[pos2][i]==x) continue ;
for(int j=;j<ve[pos3].size();j++){
if(ve[pos2][i]==ve[pos3][j]){
x=ve[pos2][i];
if(arrr[x]!=pos2&&arrr[x]!=pos3){
cout<<arrr[x]<<" ";
pos2=pos3;
pos3=arrr[x];
}
else if(arrl[x]!=pos2&&arrl[x]!=pos3){
cout<<arrl[x]<<" ";
pos2=pos3;
pos3=arrl[x];
}
else if(arrm[x]!=pos2&&arrm[x]!=pos3){
cout<<arrm[x]<<" ";
pos2=pos3;
pos3=arrm[x];
}
break;
}
}
}
}
pos++;
}
return ;
}
C - League of Leesins的更多相关文章
- League of Leesins
C - League of Leesins 首先找到每一串数字的头和尾两个数字,这两个数字有一个特点,就是它们在输入数据的时候都只会出现一次.我们在输出的时候用头和尾做第一数都可以. 然后第二个数只会 ...
- 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 ...
- Codeforces Round #601 (Div. 2) C League of Leesins
把每一次输入的一组数字存下来,然后把每个数字出现的组数存下来 然后找只出现过一次的数字a,那么这个数字a不是开头就是结尾,默认为开头(是哪个都无所谓),然后去找和它出现在同一组的两个数字b和c,而b和 ...
- Codeforces Round #601 (Div. 2)
传送门 A. Changing Volume 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/19 22:37:33 */ #include ...
- league之csv导出
有的时候当我们导出文件时,如果文件比较小可以使用phpexcel,但是当文件太大时就会遇到很多瓶颈(excel条数限制.导出时间太长等). 这个时候要么使用excel分批次导出,要么就需要使用csv导 ...
- 团队——League of Programers简介
团队名称 League of Programers 团队成员简介 武璧泽:编程能力较强,善于程序思路设计: 邹兰兰:擅长代码的分析.编写与调试: 倪彤炜:擅长解决代码的修正与编写,善于调节团队关系: ...
- 对于League of Legends的分析
League of Legends是一款在国内甚至国际上都很受欢迎的一款网络竞技行的游戏.它是由美国Riot Games开发,腾讯游戏运营的英雄对战网游.<英雄联盟>除了即时战略.团队作战 ...
- Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D. Innokenty and a Football League
地址:http://codeforces.com/contest/782/problem/D 题目: D. Innokenty and a Football League time limit per ...
- Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals )D. Innokenty and a Football League(2-sat)
D. Innokenty and a Football League time limit per test 2 seconds memory limit per test 256 megabytes ...
随机推荐
- OpenCV-Python Shi-tomas拐角检测器和益于跟踪的特征 | 三十八
目标 在本章中, 我们将学习另一个拐角检测器:Shi-Tomasi拐角检测器 我们将看到以下函数:cv.goodFeaturesToTrack() 理论 在上一章中,我们看到了Harris Corne ...
- iOS 内存分配与分区
RAM ROM RAM:运行内存,不能掉电存储. ROM:存储性内存,可以掉电存储,例如内存卡.Flash. 由于 RAM 类型不具备掉电存储能力(即一掉电数据消失),所以 app 程序一般存放于 R ...
- 一文读懂什么是CA证书
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...
- NCEP CFSR数据读取
一. NCEP CFSR再分析数据,时间分辨率是1小时. 1.整体读取数据情况 clear all setup_nctoolbox tic %% 读取数据文件 wind= ncgeodataset(' ...
- Python itchat库(1)
一.实验环境 在cmd中输入以下命令,完成微信的API包itchat的安装. pip install itchat 注意这里有个问题,因为电脑里既有Python3.6,又有anaconda.所以一定要 ...
- 原来rollup这么简单之 tree shaking篇
大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 分享不易,希望能够得到大家的支持和关注. 计划 rollup系列打算 ...
- 各种杂记关于Linux
修改Linux 日期 修改Linux时间
- Blazor入门笔记(6)-组件间通信
1.环境 VS2019 16.5.1.NET Core SDK 3.1.200Blazor WebAssembly Templates 3.2.0-preview2.20160.5 2.简介 在使用B ...
- 剑指offer—单链表反转的三种实现方法
单链表的反转可以用递归.非递归和栈的方法实现 链表节点定义: struct ListNode{ int val; Node* next; ListNode(int x):val(x),next(nul ...
- Nginx知多少系列之(一)前言
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.Linux下.NET Core项目Nginx+ ...