1 条题解

  • 0
    @ 2025-8-24 22:45:10

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Last_kiss_Snow_Dog6
    生命就像一场漫长的投资,选择正确的人,做出正确的事,抵达正确的结果,向世界展示自己的价值。

    搬运于2025-08-24 22:45:10,当前版本为作者最后更新于2023-09-12 20:57:49,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目

    1. 修改序列中第 i i 个数。
    2. 删除序列中第 i i 个数。
    3. 交换序列中第 i,j i,j 个数。

    按照正常思路来想我们要建一个图,一个无环的图。

    但是看样例一:读入了 6 6 个度,但是只输出了 4 4 条边和 5 5 个点,可以看出:有一个度没有用到,这是以简单方法切题的切入点,不妨大胆设想一下,如果只有两个点呢?可以直接用节点一连节点二。

    好像题目中的每一个要求都符合了。

    节点 1 1 和节点 2 2 的度都为 1 1

    那现在题目要求就变成了怎样的条件才能满足直接用节点一连节点二呢?

    很显然只要 n n 个度中有 2 2 个是 1 1 就行了,不然就变里面随机一到两个为 1 1

    #include <bits/stdc++.h>
    using namespace std;
    
    int n,jh;
    
    int main ( ) {
    	
    	cin >> n ;
    	for (int i = 1;i <= n;i++) {
    		int x;
    		cin >> x ;
    		if (x == 1) jh++;//统计1的个数
    	}
    	if (jh >= 2) cout << "0" << endl ;//满足情况直接输出
    	else cout << 2 - jh << endl ;//不满足时计算所需的改变次数
    	cout << "2" << endl << "1 2" << endl ;
    }
    
    • 1

    信息

    ID
    8365
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者