【正睿2021寒假省选第二轮集训 day 1】令牌生成 (组合数+二分)

description

在这里插入图片描述在这里插入图片描述

solution

打表yyds
在这里插入图片描述在这里插入图片描述其实符合条件的个数跟nnn(非题目中的意思)有着等差数列公式的千丝万缕关系
所以可以二分出具体值
最后答案的取值范围一定是长成[,)[,)[,),左闭右开的形式的
而且两个边界一定是只差了最小的那个111,那么答案的二进制长相也是固定的
在这里插入图片描述
同样二分出111的具体位置即可
这里与组合数挂钩,可以预处理部分小的组合数降低查询时间复杂度

私以为还是有思维难度的!

code

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define MAX 1e18
#define ll long long
#define mod 998244353
ll c[3005][3005];ll qkpow1( ll x, ll y ) {ll ans = 1;while( y ) {if( y & 1 ) ans = ans * x % mod;x = x * x % mod;y >>= 1;}return ans;
}ll qkpow2( ll x, ll y ) {ll ans = 1;while( y ) {if( y & 1 ) ans *= x;x *= x;y >>= 1;}return ans;
}ll calc( ll n ) {return n * ( n + 1 ) >> 1;
}ll C( ll n, ll m ) {if( n <= 3000 && m <= 3000 ) return c[n][m];if( m > n - m ) m = n - m;if( n >= 1e7 && m >= 3 ) return MAX + 1;__int128 d1 = 1, d2 = 1;for( int i = 1;i <= m;i ++ ) d1 *= i;for( int i = n - m + 1;i <= n;i ++ ) {d2 *= i;if( d2 > d1 * MAX ) return MAX + 1;}return d2 / d1;
}void solve( ll n, ll k, ll ans ) {ll t = 0, tmp;while( k > ( tmp = C( n, t ) ) ) k -= tmp, t ++;int last = n;for( ll i = 1;i <= t;i ++ ) {ll l = 1, r = last, pos;while( l <= r ) {ll mid = ( l + r ) >> 1;if( C( mid - 1, t - i + 1 ) < k ) pos = mid, l = mid + 1;else r = mid - 1;}last = pos - 1;k -= C( pos - 1, t - i + 1 );ans = ( ans + qkpow1( 2, pos - 1 ) ) % mod;}printf( "%lld\n", ans );
}void init( int n = 3000 ) {for( int i = 0;i <= n;i ++ )for( int j = 1;j <= i;j ++ )c[i][j] = MAX + 1;for( int i = 0;i <= n;i ++ ) {c[i][0] = 1;for( int j = 1;j <= i;j ++ )c[i][j] = min( c[i][j], c[i - 1][j] + c[i - 1][j - 1] );}
}int main() {init();int T; ll n, k;scanf( "%d", &T );while( T -- ) {scanf( "%lld %lld", &n, &k );ll t = sqrt( n << 1 );while( calc( t ) > n ) t --;ll t1 = n - calc( t ), t2 = t - t1;if( ! t1 ) {if( k == 1 ) printf( "%lld\n", ( qkpow1( 2, t ) - 1 + mod ) % mod );else printf( "-1\n" );}else if( t2 < 60 && qkpow2( 2, t2 ) < k )printf( "-1\n" );else solve( t2, k, ( qkpow1( 2, t1 ) - 1 + mod ) % mod * qkpow1( 2, t2 + 1 ) % mod );}return 0;
}

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

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

相关文章

CF464E-The Classic Problem【最短路,主席树】

正题 题目链接:https://www.luogu.com.cn/problem/CF464E 题目大意 nnn个点mmm条边的一张无向图&#xff0c;第iii条边长度为2xi2^{x_i}2xi​&#xff0c;求sss到ttt的最短路。 1≤n≤105,0≤m,xi≤1051\leq n\leq 10^5,0\leq m,x_i\leq 10^51≤n≤105,0≤m,xi​≤105 解题思路…

.NETStandard FreeSql v0.0.9 功能预览

年关将至&#xff0c;首页技术含量文章真是越来越少&#xff0c;理解大家盼着放假过年&#xff0c;哥们我何尝不是&#xff0c;先给大家拜个早年。兄弟我从11月底发了神经&#xff0c;开启了 ORM 功能库的开发之旅&#xff0c;历时两个月编码和文档整理&#xff0c;目前预览版本…

第十二届蓝桥杯C++赛后感

文章目录A 空间卡片直线货物摆放路径时间显示G砝码称重H杨辉三角形双向排列J括号序列注&#xff1a;有些代码忘了考试时怎么写的了&#xff0c;&#xff08;我也懒得重新写&#xff09;&#xff0c;所以很多题的代码是acwing蓝桥杯讲解里的&#xff0c;我对其进行注释和修改A 空…

SeaweedFS在.net core下的实践方案

一直对分布式的文件储存系统很感兴趣&#xff0c;最开始关注淘宝的TFS&#xff08;Taobao File System&#xff09;&#xff0c;好像搁浅了&#xff0c;官方地址无法访问&#xff0c;github上面&#xff0c;各种编译问题&#xff0c;无意间发现了SeaweedFS链接seaweedfs测试了一…

[C++ STL algorithm] lower_bound、upper_bound、unique的本质

lower_bound&#xff1a;返回第一个大于等于查找值的地址upper_bound&#xff1a;返回第一个严格大于查找值的地址 使用这两个函数需要的头文件 #include <algorithm> using namespace std;要求数组必须是有序/单调的 lower_bound lower_bound( a 1, a n 1, x );意…

蓝桥杯 I.双向排序

题目链接 题解&#xff1a; 比赛时就直接写了一个暴力sort交上&#xff0c;能骗一点分是一点 昨晚看了acwing的讲解&#xff0c;现在结合我的思路更新正解 题目中设计两个操作&#xff0c;一个是选定前x个数&#xff0c;使其降序&#xff0c;另一个是选定后y个数&#xff0c…

微软收购Citus Data | 再次肯定对开源的承诺,并加速了Azure PostgreSQL的性能和扩展...

作者&#xff1a;Rohan Kumar 翻译&#xff1a;周宝峰 从左到右&#xff1a;微软开源关系数据库总经理Sudhakar Sannakkayala&#xff0c;Citus Data首席技术官兼联合创始人Ozgun Erdogan&#xff0c;Citus Data首席执行官兼联合创始人Umur Cubukcu&#xff0c;Citus Data工…

Docker最全教程——MongoDB容器化(十三)

上一节我们讲述了数据库容器化之持久保存数据&#xff0c;本节将讲诉MongoDB容器化实践&#xff0c;并且接下来将逐步讲解其他数据库&#xff08;MySql、Redis等等&#xff09;的容器化实践&#xff0c;然后将讲诉一些分布式架构的项目实践。由于实践需要花费大量的时间&#x…

在.NET Core中使用Exceptionless分布式日志收集框架

一.Exceptionless简介Exceptionless 是一个开源的实时的日志收集框架&#xff0c;它可以应用在基于 ASP.NET&#xff0c;ASP.NET Core&#xff0c;Web Api&#xff0c;Web Forms&#xff0c;WPF&#xff0c;Console&#xff0c;MVC 等技术栈的应用程序中&#xff0c;并且提供了…

test1 3-15 模拟赛1

文章目录考试复盘matrixsetstring考试复盘 首先先说T1T1T1&#xff0c;嗯&#xff0c;发现了列是相互独立的&#xff0c;所以分开考虑了 但是实在没想到线性基&#xff0c;就顺着自己的思路硬搞了505050跑路 老实说&#xff0c;505050分的部分分写得都是迷迷糊糊的&#xff0c;…

华为云提供针对Nuget包管理器的缓存加速服务测试

在Visual Studio 2013、2015、2017中&#xff0c;使用的是Nuget包管理器对第三方组件进行管理升级的。而且 Nuget 是我们使用.NET Core的一项基础设施&#xff0c;.NET的软件包管理器NuGet.org是一项面向全球用户搭建的服务&#xff0c;不论用户身在何处&#xff0c;NuGet.org都…

test2 3-16 2021 模拟赛two

文章目录考试复盘染色问题芬威克树礼物考试复盘 先说T1T1T1 染色&#xff0c;以为是道数学题&#xff0c;推了有一会儿的公式&#xff0c;从颜色1到颜色m&#xff0c;感觉是dpdpdp转移 发现颜色重叠的方案可以转化为另外一种相邻不重叠的染色 但是推到颜色4的时候就发现自己…

ASP.NET Core 2.2 : 扒一扒新的Endpoint路由方案

ASP.NET Core 从2.2版本开始&#xff0c;采用了一个新的名为Endpoint的路由方案&#xff0c;与原来的方案在使用上差别不大&#xff0c;但从内部运行方式上来说&#xff0c;差别还是很大的。上一篇ASP.NET Core;图解路由(2.1 earler)详细介绍了原版路由方案的运行机制&#xff…

开源中国 2018 新增开源软件最受欢迎 TOP 50

本周开源中国陆续公布了两个年度榜单&#xff0c;分别是国产新秀榜 TOP 30 和国产新增榜 TOP 50。由于两个榜单的数据来源都是国内开源项目&#xff0c;所以会有部分项目同时出现在两个榜单上。今天公布的这份榜单 —— 开源中国 2018 新增开源软件最受欢迎 TOP 50&#xff0c;…

[树链剖分]List wants to travel,Relief grain,hotel加强版,This world need more Zhu

文章目录B&#xff1a;Relief grainC&#xff1a;hotel加强版B&#xff1a;Relief grain 题目 将一段区间修改的标记变成差分&#xff0c;每次都是连续一段的dfndfndfn序修改 从小到大枚举dfndfndfn&#xff0c;在一段标记的最开头的dfndfndfn插入&#xff0c;最末尾的dfndf…

eShopOnContainers 知多少[8]:Ordering microservice

1. 引言Ordering microservice&#xff08;订单微服务&#xff09;就是处理订单的了&#xff0c;它与前面讲到的几个微服务相比要复杂的多。主要涉及以下业务逻辑&#xff1a;订单的创建、取消、支付、发货库存的扣减2. 架构模式如上图所示&#xff0c;该服务基于CQRS 和DDD来实…

[翻译] Entity Framework Core in Action 关于这本书

Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍。原版地址. 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天一篇更新 PS: 翻译难免限于本人水平…

NC51189 Mondriaan‘s Dream

NC51189 Mondriaan’s Dream 题意&#xff1a; n * m的矩阵&#xff0c;用1 * 2和2 * 1的砖快密铺&#xff0c;问多少种方法&#xff1a; 题解&#xff1a; 方法1&#xff1a; 我们现在规定砖头的竖放的上部分为1&#xff0c;砖头的横放或者是竖放的下部分为0 我们每两层进…

《小团队构建大网站:中小研发团队架构实践》送书活动结果公布

截止到1月25日24&#xff1a;00&#xff0c;本次送书活动共收到75位同学参与回复&#xff0c;本次很多同学在看到活动的书十年IT老兵带你通过案例学架构&#xff0c;附C#代码&#xff0c;自行就到各大网络商店上购买了书&#xff0c;据反馈这个书很不错.下面把Top 2的留言截图给…

test6 3-21 2021省选模拟赛six

文章目录考试复盘rnglgpm考试复盘 第一题&#xff0c;乍一看期望&#xff0c;又不会做了&#xff0c;乍二看&#xff0c;暴力好像可以202020跑路&#xff0c;屁颠屁颠敲完死活过不了这个简单的样例&#xff1b;开始(⊙⊙?)乍三看&#xff0c;实数&#xff1f;&#xff1f;完了…