洛谷P1338 末日的传说

el/2023/6/4 15:33:16

题目描述

只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了。

在古老东方的幻想乡,人们都采用一种奇特的方式记录日期:他们用一些特殊的符号来表示从1开始的连续整数,1表示最小而N表示最大。创世纪的第一天,日历就被赋予了生命,它自动地开始计数,就像排列不断地增加。

我们用1-N来表示日历的元素,第一天日历就是

1, 2, 3, … N

第二天,日历自动变为

1, 2, 3, … N, N-1

……每次它都生成一个以前未出现过的“最小”的排列——把它转为N+1进制后数的数值最小。

日子一天一天地过着。有一天,一位预言者出现了——他预言道,当这个日历到达某个上帝安排的时刻,这个世界就会崩溃……他还预言到,假如某一个日期的逆序达到一个值M的时候,世界末日就要降临。

什么是逆序?日历中的两个不同符号,假如排在前面的那个比排在后面的那个更大,就是一个逆序,一个日期的逆序总数达到M后,末日就要降临,人们都期待一个贤者,能够预见那一天,到底将在什么时候到来?

输入输出格式

输入格式:

 

只包含一行两个正整数,分别为N和M。

 

输出格式:

 

输出一行,为世界末日的日期,每个数字之间用一个空格隔开。

 

输入输出样例

输入样例#1: 复制

5 4

输出样例#1: 复制

1 3 5 4 2

说明

对于10%的数据有N <= 10。

对于40%的数据有N <= 1000。

对于100%的数据有 N <= 50000。

所有数据均有解。


但愿好久好久以后我还看得懂我写的什么鬼

#include<bits/stdc++.h>
using namespace std;
int a[50005];
void reverse(int l,int r)
{for(int i=l,j=r;i<j;i++,j--)swap(a[i],a[j]);
}
int b[50005];
int main()
{int n,m,sum=0;cin>>n>>m;for(int i=1;i<=n;i++) a[i]=i, b[i]=i+b[i-1];int k=lower_bound(b+1,b+n+1,m)-b;if(b[k]==m) k++;reverse(n-k+1,n);sum=b[k-1];k=n-k;int i=n;while(sum<m){swap(a[i--],a[k]);sum++;}for(int i=1;i<=n;i++)cout<<a[i]<<' ';return 0;
}

 

http://www.ngui.cc/el/3419506.html

相关文章

洛谷P2258 子矩阵

题目描述 给出如下定义&#xff1a; 子矩阵&#xff1a;从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵&#xff08;保持行与列的相对顺序&#xff09;被称为原矩阵的一个子矩阵。 例如&#xff0c;下面左图中选取第22、44行和第22、44、55列交叉位置的元素得到一个…

spfa(求单源最短路)

一、简介 spfa &#xff1a;Shortest Path Faster Algorithm 单源最短路&#xff1a;给定一个带权值的有向图&#xff0c;给定图中的一个定点V&#xff0c;则V称为源&#xff0c;V能到达所有的顶点的最短距离称为单源最短路 二、图的存储方式 #include<bits/stdc.h> …

洛谷P3371 【模板】单源最短路径(弱化版)

题目背景 本题测试数据为随机数据&#xff0c;在考试中可能会出现构造数据让SPFA不通过&#xff0c;如有需要请移步 P4779。 题目描述 如题&#xff0c;给出一个有向图&#xff0c;请输出从某一点出发到所有点的最短路径长度。 输入输出格式 输入格式&#xff1a; 第一行包…

hdu1285确定比赛名次

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41540 Accepted Submission(s): 15994 Problem Description 有N个比赛队&#xff08;1<N<500&#xff09;&#xff0c;编号依次为1&#…

hdu1106排序

排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 80900 Accepted Submission(s): 24484 Problem Description 输入一行数字&#xff0c;如果我们把这行数字中的‘5’都看成空格&#xff0c;那么就得到一…

洛谷P1641 [SCOI2010]生成字符串

题目描述 lxhgww最近接到了一个生成字符串的任务&#xff0c;任务需要他把n个1和m个0组成字符串&#xff0c;但是任务还要求在组成的字符串中&#xff0c;在任意的前k个字符中&#xff0c;1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个&#xff0c;聪…

逆元运算(除法取模)

一、简介 逆元&#xff1a;ax≡1&#xff08;mod p&#xff09;当a和p互质时&#xff0c;方程的解 x 称为a关于p的逆元&#xff0c; 在普通的四则运算中&#xff0c;只有加减乘三种运算可以根进行分别取余运算&#xff0c;因为这三种运算都是从低位到高位的运算&#xff0c;而…

湘潭大学校赛Black White

链接&#xff1a;https://ac.nowcoder.com/acm/contest/893/F 来源&#xff1a;牛客网 题目描述 你有一个长度为 n 的 01 串S&#xff0c;你可以执行最多 m 次操作。 对于每次操作&#xff0c;你可以选择一个位置 i 满足 1≤i≤n1≤i≤n&#xff0c;翻转这一位的值&#xff0…

落谷P2261 [CQOI2007]余数求和(数论)

题目背景 数学题&#xff0c;无背景 题目描述 给出正整数 nn 和 kk 计算 G(n, k)k\ \bmod\ 1 k\ \bmod\ 2 k\ \bmod\ 3 \cdots k\ \bmod\ nG(n,k)k mod 1k mod 2k mod 3⋯k mod n 的值 其中 k\ \bmod\ ik mod i 表示 kk 除以 ii 的余数。 例如 G(10, 5)5\ \bmod\ 1 5\…

hdu2204Eddy's爱好(数论+容斥原理)

Problem Description Ignatius 喜欢收集蝴蝶标本和邮票&#xff0c;但是Eddy的爱好很特别&#xff0c;他对数字比较感兴趣&#xff0c;他曾经一度沉迷于素数&#xff0c;而现在他对于一些新的特殊数比较有兴趣。 这些特殊数是这样的&#xff1a;这些数都能表示成M^K&#xff0c…