首页 > 其他分享 >洛谷 NOIP 2023 模拟赛 T2 汪了个汪

洛谷 NOIP 2023 模拟赛 T2 汪了个汪

时间:2023-11-12 20:44:18浏览次数:51  
标签:洛谷 二元 NOIP int T2 差为 maxn ct

洛谷 NOIP 2023 模拟赛 T2 汪了个汪

考试建出正解图不知道怎么处理,题解区樱雪喵博客薄纱。

樱雪喵题解链接

Ps:笔者语文爆炸,不建议阅读本文

思路

首先你会发现,一共有 \(\frac{n(n-1)}{2}\) 个二元组,有 \(\frac{n(n-1)}{2}\) 个横向相邻数对。

按照题目要求,一个横向数对对应一个二元组。

你又发现(但是我没发现)刚好有 \(n-1\) 个差为 1 的二元组,有 \(n-2\) 个差为 2 的二元组……

接着又有,第 \(i\) 行刚好要放 \(i-1\) 个二元组。

刚好对应上!(这简直比巧克力还要巧)

那是不是把差为 \(i\) 的二元组,放到第 \(n-i+1\) 行就好了呢?

你会发现 \((1,4),(2,5),(3,6)\) 这种东西根本放不到一行。

考虑一下,把这个金字塔转动一下:

如 \(n=5\) 时,从这样:

变成这样:

图中的 \(\frac{5 \times 4}{2}=10\) 条红色的线,表示在第一张图(未旋转的图)中,红线取左右两边的元素构成一个二元组。(第二张图就是上下两个元素)

旋转后图形的第一行有 \(4\) 条红线,就对应着 \(n-1\) 条差为 1 的二元组;第二行有 \(3\) 条红线,就对应着 \(n-2\) 条差为 2 的二元组……

也就是寻找一种构造方案,使得旋转过后的图中每一列的第一行红线相差 1,第二行相差 2,第 3 行相差 3……

那么有如下构造:

\[x,x+1,x-1,x+2,x-2,\cdots \]

直接枚举每一个 \(x\) 直到 \(x\) 变换出来的数不在 \([1,n]\) 范围之内即可。

例如 \(n=7\) 时,枚举 \(x\) 得到的序列:

1 2
2 3 1 4
3 4 2 5 1 6
4 5 3 6 2 7 1
5 6 4 7 3
6 7 5
7

将序列长度排序,即为答案:

7
1 2
6 7 5
2 3 1 4
5 6 4 7 3
3 4 2 5 1 6
4 5 3 6 2 7 1

时间复杂度 \(O(n^2)\)。

CODE

#include<bits/stdc++.h>
using namespace std;

const int maxn=4005;

int n;
int a[maxn][maxn];

pair<int,int> p[maxn];

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int x=i,t=i,ct=0,bj=-1,xz=0;
        while(t<=n&&t>=1)
        {
            ct++;
            a[i][ct]=t;
            bj*=-1;
            xz+=ct%2;
            t=x+bj*xz;
        }
        p[i]=make_pair(ct,i);
    }
    sort(p+1,p+n+1);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++) printf("%d ",a[p[i].second][j]);
        printf("\n");
    }
}

后记

樱雪喵 ORZ

标签:洛谷,二元,NOIP,int,T2,差为,maxn,ct
From: https://www.cnblogs.com/binbinbjl/p/17827761.html

相关文章

  • 231112洛谷模拟赛
    T1种树P9836种树只需要运用一些小学奥数即可解决首先需要知道的一点是将\(p_i\)质因数分解后得到\(p_i=\prod\limits_{j=1}^ma_j^{k_j}\),则有\(\prod\limits_{i=1}^{m}(k_i+1)\)个因数则最终就是把所有的都再乘起来考虑\(w\)分解后能造成什么影响,依据乘法......
  • NOIP 冲刺计划
    学习重点图论最短路树:树基础、树直径、LCA、树重心最小生成树拓扑排序差分约束强连通分量双连通分量割点与桥字符串trie树字符串哈希字符串匹配(kmp)动态规划记忆化搜索背包dp线性dp区间dp树形dp数据结构分块ST表线段树数学筛法gcd素数搜索bfsd......
  • [Luogu NOIP 2023 模拟] Solution
    这篇blog在我的博客后台躺了好几天了,只不过今天才记起来发。种树(plant)首先看到因数个数,想到在质因数分解后的序列上考虑问题。进一步观察,每个不同质因子的贡献是独立的。也就是说,我们单独考虑某一个质因子对答案的贡献,是这样的问题:给长度为\(n\)的序列\(a\)和一个数......
  • T2
    题目描述给你下列7种形状,问恰好填满\(n*2\)的方格有多少种方案(每种形状可任意旋转)后三种形状纯粹是出题人的恶意,d用没有做法一:暴力不会做法二:递推定义:f[i]为填满\(i*2\)的方格的方案数g[i]为填满\(i*2\)的方格不能被腰斩的方案数解释:例如当\(n=4\)时......
  • 【洛谷 P2669】[NOIP2015 普及组] 金币 题解(循环)
    [NOIP2015普及组]金币题目背景NOIP2015普及组T1题目描述国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这......
  • train.cs.nctu.edu.tw: ret2libc
    来源本题来自ctfwiki中ret2libc后的一道练习题检查保护只开启了NX保护ida查看跟前面的shellcode的课后练习类似,泄露了/bin/sh地址和puts函数的地址gdb调试断点下在main,结合ida中v4=esp+1ch得到偏移为1chexpfrompwnimport*fromLibcSearcherimport......
  • Sovit2D组态设计 Web Scada烟气脱硫工艺流程
    前言我国是燃煤大国,燃煤排放的SO₂成为影响我国城市空气质量的主要污染物。因此,锅炉烟气脱硫是减排SO₂的重要手段。建设背景在节能减排的大形势下,钢厂、电厂等烟气脱硫是完成二氧化硫减排任务的重点工作之一。烟气脱硫系统具有很高的复杂性,目前很多脱硫系统出现运行故障多、不能......
  • NOIP2023模拟赛 种树
    NOIP2023模拟赛种树先整无脑爆搜#include<iostream>#include<algorithm>#include<cstdio>#definemod%998244353#definelllonglongconstintN=1e4+10;usingnamespacestd;lln,w;llp[N];llfy[N],nfy;llans=-1;intvis[N];intge......
  • 【比赛】2023 NOIP 备战
    2023NOIP备战考试策略20min左右通读题面(一定不要读错题,结合样例分析每道题题至少保证50pts左右的暴力不必按照顺序做题,那道题最有希望先做哪道随时存盘时间分配注重暴力(特别是没有思路的时候,有时间就打不要在没把握的的,耗费太长时间80pts-100pts都可以认......
  • T2T组装时代的多基因组比对MGA
    多基因组比对(multiplegenomealignment,MGA)首先要定义多序列比对(multiplesequencealignment,MSA)。MSA是将同源关系分配给3个或更多序列的方法(对于2个序列,使用“成对”而非“多个”),其中一组核苷酸是同源的,如果它们来自同一个共同祖先。这些比对通常由二维数组表示,其中......