Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律

传送门

文章目录

  • 题意:
  • 思路:

题意:

在这里插入图片描述

思路:

找规律yydsyydsyyds
一看没什么想法,所以打了个表,好家伙,不打不知道,一打不得了,下面是n=6n=6n=6的符合要求的情况:
在这里插入图片描述
不难发现,他符合条件的个数为2n−12^{n-1}2n1个,并且很有规律,以某个数开头的个数分别为1,20,21,22,...,2n−21,2^0,2^1,2^2,...,2^{n-2}1,20,21,22,...,2n2,并且加入这个数之后小于他的数也都跟在后面了,之后又是上面那种情况,类似于递归。
比如333开头的,我们通过不断k−=2xk-=2^xk=2x最终确定在以333开头的块内,让后把3213 \ \ 2 \ \ 13  2  1放入答案,之后发现又在444的块内,让后将43214\ \ 3 \ \ 2 \ \ 14  3  2  1加入答案,由于3213 \ \ 2 \ \ 13  2  1之前加入了,所以加入444即可,一直这样递归确定块即可。
由于nnn很大,我们不能算出来2n2^n2n,所以让他等于一个大于kkk的数即可。

附赠打标程序。

// Problem: B. Almost Sorted
// Contest: Codeforces - Codeforces Round #715 (Div. 1)
// URL: https://codeforces.com/problemset/problem/1508/B
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n; LL k;
int a[N];
LL b[N],inf;
bool st[N];
vector<pair<LL,int>>v;
vector<int>ans;bool check() {for(int i=1;i<6;i++) if(a[i+1]<a[i]-1) return false;return true;
}LL qmi(LL a,LL b) {LL ans=1;while(b) {if(b&1) ans=ans*a;a=a*a;b>>=1;}return ans;
}void solve() {for(int i=1;i<=n;i++) {if(i==n) b[i]=1;else {int now=n-i-1;if(now>=62) b[i]=inf;else b[i]=qmi(2ll,now);}}for(int i=1;i<=n;i++) {if(k>b[i]) {k-=b[i];}else {for(int j=i;j>=1&&!st[j];j--) ans.pb(j),st[j]=1;}}for(auto x:ans) printf("%d ",x); puts("");
}int main()
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);/*for(int i=1;i<=6;i++) a[i]=i;do {if(check()) {for(int i=1;i<=6;i++) printf("%d ",a[i]);puts("");}}while(next_permutation(a+1,a+1+6));*/inf=qmi(2ll,62);int _; scanf("%d",&_);while(_--) {scanf("%d%lld",&n,&k);ans.clear();for(int i=1;i<=n;i++) st[i]=0;if(n==1) {if(k!=1) puts("-1");else printf("1\n");continue;}if(n-2>=62) solve();else {LL now=qmi(2ll,n-1);if(k>now) puts("-1");else solve();}}return 0;
}
/**/

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

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

相关文章

SQL Server之索引解析(二)

、堆表堆表通过IAM连接一起&#xff0c;查询时全表扫描。1、1 非聚集索引结构叶子节点数据结构&#xff1a;行数据结构Rid&#xff08;8字节&#xff09;中间节点数据结构&#xff1a; &#xff08;非聚集非唯一索引&#xff09;行数据结构Page&#xff08;4&#xff09;2 Rid&…

纠正一个错误,分布式系统关注点第17篇

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「78」篇原创敬上今天来加个餐&#xff0c;紧急纠正一个错误。先和大家说一声抱歉&#xff1a;D昨晚睡觉前&#xff0c;惯例打开「订阅号助手」回复一些留言。有一位小伙伴提了…

【NOI2016】国王饮水记【贪心】【斜率优化】【决策单调性】

传送门 首先比h1h_1h1​小的肯定没用&#xff0c;直接无视 然后考虑合并的顺序 ①在无限制的情况下&#xff0c;合并多个不如一个一个合并 a<b<ca<b<ca<b<c时&#xff0c;ab2c2>abc3{{ab \over 2}c\over 2}>{{abc}\over 3}22ab​c​>3abc​ ②先…

CF946D Timetable 背包dp + 思维转换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; n,m,k≤500n,m,k\le500n,m,k≤500 思路&#xff1a; 将其转换成背包的模型&#xff0c;就可以想出来一个很明显的dpdpdp状态&#xff1a;f[i][j]f[i][j]f[i][j]表示前iii行花费了jjj的最小代价&#xff0c;…

.NET开发框架(三)-高可用服务器端设计

我们对框架功能作了简述&#xff0c;演示视频请点击 这里查看 &#xff0c;本章节&#xff0c;我们专门讲解一下&#xff0c;如何在Window服务器下&#xff0c;设计高可用的框架。我们的框架设计采用的是Window版本的服务端设计&#xff1a;整体框架图如下&#xff0c;为什么我…

P1537 弹珠 背包可行性dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 疯狂水文章。 这个很明显是个背包&#xff0c;我们开一个布尔数组&#xff0c;之后枚举每组的个数&#xff0c;让后枚举1−61-61−6&#xff0c;再枚举容量kkk&#xff0c;注意顺序不能错了…

.NET Core 3.0中的WinForms创建集中式拉取请求中心

Windows 窗体&#xff08;或简称 WinForms&#xff09;&#xff0c;多年来被用于开发具有丰富和交互式界面的基于 Windows 的强大应用程序。各类企业对这些桌面应用程序的投入量非常巨大&#xff0c;每月有大约 240 万开发人员使用 Visual Studio 创建桌面式应用。利用和扩展现…

CF296B dp\容斥

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; n≤1e5n\le1e5n≤1e5 思路&#xff1a; 求方案数基本就是考虑dpdpdp了&#xff0c;看到nnn这么大可以考虑一下分情况讨论的dpdpdp状态。 设f[i][j]f[i][j]f[i][j]表示到了第iii个&#xff0c;状态为jjj的方…

asp.net core 自定义异常处理中间件

Intro在 asp.net core 中全局异常处理&#xff0c;有时候可能不能满足我们的需要&#xff0c;可能就需要自己自定义一个中间件处理了&#xff0c;最近遇到一个问题&#xff0c;有一些异常&#xff0c;不希望记录错误日志&#xff0c;目前主要是用户请求取消导致的 TaskCanceled…

CF786B Legacy 线段树优化建图

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 实现如下连边后跑最短路。 思路&#xff1a; 优化建图板子题&#xff0c;优化思路就是将区间分割成若干个线段树上的线段&#xff0c;与线段树分治有点类似&#xff0c;由于有点向区间也有区间向点的边&a…

【ZJOI2015】幻想乡 Wi-Fi 搭建计划【几何】【贪心】【dp】

传送门 题意&#xff1a;一个x∈(−∞,∞),y∈[0,R]x\in(-\infin,\infin),y\in[0,R]x∈(−∞,∞),y∈[0,R]的矩形中有nnn个点&#xff0c;矩形外有mmm个半径均为RRR的圆&#xff0c;有独立的代价cic_ici​。求覆盖最多的点所需的最小代价。 n,m≤100n,m\leq100n,m≤100 显然先…

.NET架构开发应知应会

.NET程序是基于.NET framework、.NET Core、Mono、UWP【.NET实现】开发和运行的 &#xff0c;定义以上【.NET实现】的标准规范称为.NET StandardL1&#xff1a;.NET Standard.NET标准是一组API集合&#xff0c;由上层三种【.NET实现】的Basic Class Library实现&#xff0c;更正…

几个冷门字符串算法的学习笔记(最小表示法,exKMP,Lyndon Word)

所有下标均从1开始 最小表示法 给定一个串&#xff0c;求字典序最小的循环同构。 我们把串复制一遍接在后面&#xff0c;然后求出[1,N][1,N][1,N]开始的长为NNN的子串中最小的 先设i1,j2i1,j2i1,j2 然后暴力找出iii和jjj往后匹配的第一个不同的位置&#xff0c;记为ikikik…

.NET Core IdentityServer4实战 第Ⅴ章-单点登录

OiDc可以说是OAuth的改造版&#xff0c;在最初的OAuth中&#xff0c;我们需要先请求一下认证服务器获取下Access_token&#xff0c;然后根据Access_token去Get资源服务器, 况且OAuth1 和 2 完全不兼容&#xff0c;易用性差&#xff0c;而OIDC可以在登陆的时候就把信息返回给你&…

【CF594E】Cutting the Line 【贪心】【Lyndon Word】【扩展kmp】

传送门 题意&#xff1a;给一个字符串SSS和正整数kkk&#xff0c;将SSS分成最多kkk段&#xff0c;每段不变或翻转&#xff0c;使得最后的字典序最小。 ∣S∣≤5106|S|\leq5\times10^6∣S∣≤5106 发现不翻转可以看成拆成若干单字符分别翻转&#xff0c;所以先分析一下必须翻转…

一份好的工作总结才能帮你升职加薪

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「79」篇原创敬上最近有点忙&#xff0c;搬出之前攒的一篇文章来应急一下。一篇能助你挣更多钱的文章。好了&#xff0c;下面开始。我的读者们大部分是互联网行业的&#xff0c…

腾讯开源软件镜像站上线

腾讯开源软件镜像站(Tencent Open Source Mirror Site)已于近日上线&#xff0c;其官方名称为「腾讯云软件源」&#xff0c;由腾讯云提供支持。官方表示搭建此开源镜像站的目的在于宣传自由软件的价值&#xff0c;提高自由软件社区文化氛围&#xff0c;推广自由软件在国内的应用…

ASP.NET Core on K8S学习初探(2)

“ [LOG] ASP.NET Core on K8S Starting...”在上一篇《单节点环境搭建》中&#xff0c;通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境&#xff0c;接下来就是动人心弦的部署ASP.NET Core API到K8S了。但是&#xff0c;在部署之前&#xff0c;我还是把基本…

Educational Codeforces Round 96 E. String Reversa 线段树模拟序列交换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 与上一篇题解大同小异&#xff0c;无非就是不需要枚举排列了。 // Problem: E. String Reversal // Contest: Codeforces - Educational Codeforces Round 96 (Rated for Div. 2) // URL:…

ASP.NET Core on K8S学习初探(1)

“ [LOG] ASP.NET Core on K8S Starting...”01—写在之前当近期的一个App上线后&#xff0c;发现目前的docker实例&#xff08;应用服务BFF中台服务工具服务&#xff09;已经越来越多了&#xff0c;而我司目前没有专业的运维人员&#xff0c;发现运维的成本逐渐开始上来&#…