洛谷 NOIP 2023 模拟赛 T2 汪了个汪
洛谷 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,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 2023 模拟赛 T2 汪了个汪的更多相关文章
- 洛谷 P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)
洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这 ...
- NOIP欢乐模拟赛 T2 解题报告
小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个 ...
- 洛谷金秋夏令营模拟赛 第2场 T11737 时之终末
这道题就是道状压dp...比赛的时候太贪心 然后状压又不好 所以T2 T3一起挂了QAQ 吸取教训QAQ f[i][j][k]表示前i个数选了j个 最后a个的状态为k的答案 #include<c ...
- 【洛谷】xht模拟赛 题解
前言 大家期待已久并没有的题解终于来啦~ 这次的T1和HAOI2016撞题了...深表歉意...表示自己真的不知情... 天下的水题总是水得相似,神题各有各的神法.--<安娜·卡列妮娜> ...
- 洛谷 P5048 - [Ynoi2019 模拟赛] Yuno loves sqrt technology III(分块)
题面传送门 qwq 感觉跟很多年前做过的一道题思路差不多罢,结果我竟然没想起那道题?!!所以说我 wtcl/wq 首先将 \(a_i\) 离散化. 如果允许离线那显然一遍莫队就能解决,复杂度 \(n\ ...
- [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III
题目大意:有$n(n\leqslant5\times10^5)$个数,$m(m\leqslant5\times10^5)$个询问,每个询问问区间$[l,r]$中众数的出现次数 题解:分块,设块大小为$ ...
- 洛谷金秋夏令营模拟赛 第2场 T11738 伪神
调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 没事我只是个SB而已 这题其实还是蛮正常的 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的 ...
- 洛谷P5048 [Ynoi2019模拟赛]Yuno loves sqrt technology III(分块)
传送门 众所周知lxl是个毒瘤,Ynoi道道都是神仙题 用蒲公英那个分块的方法做结果两天没卡过去→_→ 首先我们分块,预处理块与块之间的答案,然后每次询问的时候拆成整块和两边剩下的元素 整块的答案很简 ...
- NOIP前模拟赛总结
NOIP前模拟赛总结 from 2018.10.7 to ??? Date Name Score(Rank) Problems 2018.10.7 McfXH AK Contest 42(?) 期望得 ...
- 洛谷NOIp热身赛题解
洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...
随机推荐
- 使用C#爬取快手作者主页,并下载视频/图集
最近发现一些快手的作者,作品还不错,出于学习研究的目的,决定看一下怎么爬取数据.现在网上有一些爬虫工具,不过大部分都失效了,或者不开源.于是自己就写了一个小工具.先看一下成果: 软件只需要填写作者ui ...
- 什么是API?(详解)
编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者.初学者看到下面这一段话可能就有点头痛了. API(Application Programming Interface,应用 ...
- redux开发中的一个小坑
redux的actiontypes,不可以重名,重名将会报错 When called with an action of type "inserttoken", the slice ...
- 【漏洞分析】OSN 代币攻击事件:一笔资金伪造多个分红大户
背景 OSN 是一种 fee on transfer 代币,会根据用户分红账户的余额对用户发放分红.攻击者利用漏洞增发分红账户的余额,随后触发分红机制完成获利. OSN:https://bscscan ...
- 总结篇3:redis 典型缓存架构设计问题及性能优化
聊聊对于缓存预热.缓存穿透.缓存雪崩.缓存击穿.缓存更新.缓存降级的定义理解 缓存穿透 定义 当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶 ...
- (零) React Native 项目开发拾遗
一位离职的前端同事,最近接了个 React Native 的活儿,遇到许多搞不定的问题,于是找到我帮忙"补课"(没有系统的学习 React Native,也不具备原生 Androi ...
- 《linux实用指令积累》持续更新。。。
一.远程服务器文件拷贝 1.1.scp scp /home/a.txt root@127.0.0.1:/home/ 1.2.sshpass(适用于脚本调用,直接指定密码) 1.2.1.安装sshpas ...
- 如何在 Nuxt 3 中有效使用 TypeScript
title: 如何在 Nuxt 3 中有效使用 TypeScript date: 2024/9/9 updated: 2024/9/9 author: cmdragon excerpt: 摘要:本文详 ...
- opencv colors
""" 在利用python进行画图时,我们可能常常用的颜色就是'k'黑色,'r'红色,'b'蓝色,'g'绿色等,这些颜色分别代表常见的 几种颜色.但是当我们画图比较多时, ...
- Let's Encrypt Free SSL – win-acme
前言 之前有介绍过用 Certify The Web 来做 Let's Encrypt SSL, 但是最近常看到它的 License 提示, 有种随时随地要收费的感觉 于是找了一个替代品 win-ac ...