Codeforces Round #847 (Div. 3) 的 C. Premutation(找规律题)

news2024/9/20 8:48:41

题面:

中文大意:

如果一个n个数字的序列恰好包含了1到n的所有整数,那么这个序列就被称为置换。例如,序列[3,1,4,2]。

1]和[2,1]是互换,但是[1,2,1],[0,1]和[1,3,4]不是互换。

克里斯蒂娜有一个由n个元素组成的排列组合p。她在白板上写了n次,其方式如下。

* 当她在第z次(1<i<n)写这个排列组合时,她跳过了元素p。

因此,她总共写了n个长度为n-1的序列。

例如,假设克里斯蒂娜有一个长度为4的排列组合p=[4, 2, 1, 3],那么她做了以下工作。

1. 写出序列[2, 1, 3],跳过原排列组合中的元素p; = 4。

2. 2. 写下序列[4, 1, 3],跳过原始排列中的元素py=2。

3. 3. 写了序列[4, 2, 3],跳过了原始排列中的元素p3=1。

4. 写了序列[4, 2, 1], 跳过了原始排列中的元素py = 3。

你知道写在白板上的所有n个序列,但你不知道它们的书写顺序。它们是

以任意顺序给出。从这些序列中重建原来的排列组合。

例如,如果你知道序列[4, 2, 1], [4, 2, 3], [2, 1, 3]. [4,1,3],那么原始的排列组合将是p=[4,2,1,3]。

输入

第一行输入数据包含一个整数t(I < t < 104)--测试案例的数量。

测试用例的描述如下。

每个测试案例的第一行包含一个整数n(3 < n < 100)。

接下来是7行,每行正好包含n-1个整数,描述白板上写出的一个序列。

保证所有的序列都可以从某种排列组合中得到,并且所有输入集的总和n2不超过

2-10°.

输出

对于每个测试案例,在单独的一行中输出一个排列组合p,使所给的mn个序列可以从它那里得到。

保证答案的存在,而且是唯一的一个。换句话说,对于每个测试案例,所需的排列组合肯定是存在的

这道题感觉题目并没有很读懂,主要看样例找的规律

最终的规律是:要处理的那个n* n-1 大小的数列第一列是至关重要的,我们不难发现第一列永远是n-1个重复的数字和一个特殊的,而那个重复的数就是第一个原始数列的值,而特殊的那个数的那一排就是原始数列剩余的数

如第一个例子:

4

4 2 1

4 2 3

2 1 3

4 1 3

一开始我们知道原始数列是1 2 3 4 的一种排列

我们设原始数列为* * * * ;

我们观察

在第一列中4重复了3次

那么原始数列现在就是

4 * * * ;

然后唯一没重复的那组数据 2 1 3 即为剩下需要的

现在原始数列就能被找到了

4 2 1 3;

代码就很简单了

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector> 
#include <map>
#include <stack>
#include <queue>
#include <set>
using namespace std;
typedef long long ll;
const int maxx = 1000050;
ll n, m, k, t, now, l, r, c, b , s;
const int INF = 0x3f3f3f3f;
const double pi = acos(-1.0);
int q[] = {3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0};
const ll mod = 1e9 + 7;
int p[225][225];
int e[225];
int ans[225];
char s1[1000100];
void check()
{
    int n;
    cin >> n;//输入数字终止数
    for (int i = 1; i <= n; i++)//组成现实数组
    {
        for (int j = 1; j < n; j++)
        {
            cin >> p[i][j];
        }
    }
    memset(e, 0, sizeof(e));//初始化e数组//防止下组数据影响结果
    for (int i = 1; i <= n; i++)//找出第一个列里出现次数最多的,就是原始数组的第一个
    {
        e[p[i][1]] ++;
        if (e[p[i][1]] > 1)
        {
            ans[1] = p[i][1];
        }
    }
    for (int i = 1; i <= n; i++)
    {
        if (e[p[i][1]] == 1)//如果第一列中有一个数仅仅只出现了一次
        {
            for (int j = 1; j < n; j++)//那么原始数列的剩余的数就是这一排的所有数
            {
                ans[j + 1] = p[i][j];
            }
        }
    }
    for (int i = 1; i <= n; i++)//将排列好的数列输出
    {
        cout << ans[i] << " "; 
    }
    cout << endl;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    cin >> t;
    while (t--)
    {
        check();
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java设计模式-备忘录模式Memento

介绍 备忘录模式&#xff08;Memento Pattern&#xff09;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。可以这里理解备忘录模式&#xff1a;现实生活中的备忘录是用来记录某…

window系统path环境变量删除了怎么办?

前言 纪念我今天装JDK配置环境时&#xff0c;误删了path环境变量&#xff0c;后总结的知识点&#xff0c;希望对大家有所帮助&#xff0c;期待大家的评论&#xff01; 目录 前言 方案一&#xff1a;从注册表里找 方案二&#xff1a;实在没办法&#xff0c;从网上复制 方案三…

7-1输入/输出系统-概念外设接口

文章目录一.I/O系统基本概念&#xff08;一&#xff09;输入/输出系统&#xff08;二&#xff09;I/O控制方式二.外部设备1.显示存储器VRAM2.字符显示器3.外储存器三.I/O接口1.I/O接口的功能2.I/O接口的基本结构3.I/O接口的工作原理4.I/O接口的类型5.I/O端口及其编址&#xff0…

网络编程(TCP+UDP)(3)

1)咱们之前所说的网络分层就是因为说如果说使用一个协议太复杂了&#xff0c;那么我们就需要把这个协议分层&#xff0c;每一个协议都会简单一些&#xff0c;灵活替换也更方便&#xff1b; 2)咱们现在需要实现一个网络计算器&#xff1b; 1)上图是模拟一个计算器服务器和客户端…

第01天-Java数据结构和算法

001_几个经典的算法面试题(1)暴力匹配不推荐KMP算法分治算法002_几个经典的算法面试题(2)回溯算法图的深度优先遍历算法(DFS) 贪心算法优化003_内容介绍和授课方式数据结构和算法的重要性课程亮点和授课方式004_数据结构和算法的关系005_编程中实际遇到的几个问题Java代码小结…

机器学习实战(第二版)读书笔记(3)——膨胀卷积,WaveNet

一、基础知识 对于一个卷积层&#xff0c;如果希望增加输出单元的感受野&#xff0c;一般可以通过三种方式实现&#xff1a; 增加卷积核的大小增加层数&#xff08;比如两层3 3 的卷积可以近似一层5 5 卷积的效果&#xff09;在卷积之前进行池化操作 其中第1&#xff0c;2种…

推荐5个很牛的开源项目

大家伙们年过了哈&#xff0c;该收拾收拾心情上班了。 不知道大家有没有这种感觉&#xff0c;年纪越大&#xff0c;越觉得年过得快。感觉好像才刚开始&#xff0c;马上初五了&#xff0c;初六送完穷鬼&#xff0c;初七送自己出来上班了&#xff08;没有哭&#xff09;。 不过…

Python编写的词频统计工具的使用说明

一、工具下载 https://download.csdn.net/download/huangbangqing12/87400984 二、工具使用方式 目录文件如下所示&#xff1a; 请先在word.txt文件里放入目标长尾词&#xff0c;一行一个&#xff1a; 文件-另存为&#xff1a; 选择utf-8编码并直接保存替换原文件&#xff1…

二叉树的层次遍历

文章目录二叉树的层次遍历二叉树的层次遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637.二叉树的层平均值429. N 叉树的层序遍历515.在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针填充每个节点的下一个右侧节点指针II104.二叉树的最大深度二叉树的最小深度二…

ESPnet

文章目录关于 ESPnet安装配置运行 yesno关于 ESPnet github&#xff1a; https://github.com/espnet/espnet ESPnet is an end-to-end speech processing toolkit covering end-to-end speech recognition, text-to-speech, speech translation, speech enhancement, speaker …

机器自动翻译古文拼音 - 十大宋词 - 声声慢 寻寻觅觅 李清照

声声慢寻寻觅觅 宋李清照 寻寻觅觅&#xff0c;冷冷清清&#xff0c;凄凄惨惨戚戚。 乍暖还寒时候&#xff0c;最难将息。 三杯两盏淡酒&#xff0c;怎敌他、晚来风急。 雁过也&#xff0c;最伤心&#xff0c;却是旧时相识。 满地黄花堆积&#xff0c;憔悴损&#xff0c;如今…

Web 应用程序——我的心理备忘单

介绍本文是“持续交付&#xff1a;HTML 到 Kubernetes”的一部分。虽然我迫不及待地想深入了解分布式系统的细节&#xff0c;但我发现自己处于一个不愉快的境地&#xff1a;我认为最好从前端开始写。那是因为网络应用程序是当今的标准。在多个云中部署的 ArgoCD-Kubernetes 集群…

商业智能BI,大数据时代的新趋势

根据IDC预测&#xff0c;2025年时中国产生的数据量预计将达48.6ZB&#xff0c;在全球中的比例为27.8%。在未来&#xff0c;数据会是构建现代社会的基本要素&#xff0c;也是社会的基本建设。这也不禁让我想起了最近新公布的《关于构建数据基础制度更好发挥数据要素作用的意见》…

高并发下如何保证接口的幂等性?

一、什么是幂等&#xff1f; 看一下维基百科怎么说的&#xff1a; 幂等性&#xff1a;多次调用方法或者接口不会改变业务状态&#xff0c;可以保证重复调用的结果和单次调用的结果一致。 二、使用幂等的场景 1、前端重复提交 用户注册&#xff0c;用户创建商品等操作&#…

使用这个工具,本地调试UI再也不用怕了

前言&#xff1a;在我们日常使用中&#xff0c;很多场景都会用到UI自动化&#xff0c;通用的都是PythonSelenium的方式。今天介绍一种&#xff0c;不用通过代码&#xff0c;直接通过页面可视化配置的方式&#xff0c;就可以完成我们想要的自动化场景。话不多说&#xff0c;正片…

ElasticSearch - 结果处理

目录 结果处理-排序 结果处理-分页 结果处理-高亮 结果处理-排序 elasticsearch默认是根据相关度算分(_score)来排序&#xff0c;但是也支持自定义方式对搜索结果排序可以排序字段类型有&#xff1a;keyword类型、数值类型、地理坐标类型、日期类型等普通字段排序keyword、数…

pytorch图像分类全流程(五)--图像分类算法精度评估指标

本次我们来学习图像分类算法精度的各种评估指标&#xff1a;precision、recall、accuracy、f1-score、AP、AUC。 首先我们来学一个很重要的概念&#xff0c;混淆矩阵&#xff1a; 1.精确率(Precision)&#xff1a; 指的是所有被判定为正类&#xff08;TPFP&#xff09;中&…

8-Arm PEG-Succinamide Acid,8-Arm PEG-SAA,八臂-聚乙二醇-丁二酸酰胺供应

英文名称&#xff1a;8-Arm PEG-SAA&#xff0c;8-Arm PEG-Succinamide Acid 中文名称&#xff1a;八臂-聚乙二醇-丁二酸酰胺 8-臂PEG-SAA是一种多臂PEG衍生物&#xff0c;在连接到一个六甘油核心的八个臂的每个末端具有羧基。PEG和丁二酰胺酸COOH基团之间存在C3酰胺键。PEG酸…

HTML中引入CSS样式的第一种方式:内联定义方式

<!-- HTML中引入CSS样式的第一种方式&#xff1a;内联定义方式 语法格式&#xff1a; <标签 style"样式名:样式值;样式名:样式值;样式名:样式值;..."></标签> --> <!DOCTYPE html> <html> <head> …

操作系统(day01)

文章目录操作系统的功能和目标1.作为系统资源的管理者&#xff08;从中间往两边看&#xff09;2.作为用户和计算机硬件之间的接口&#xff08;从下往上看&#xff09;操作系统的四大特征共享虚拟异步操作系统的发展与分类手工操作阶段批处理阶段--多道批处理系统分时操作系统实…