CF1922E Increasing Subsequences
一个显然的思路就是构造很多互不相关的上升序列。但是这样构造出来的 \(n\) 是 \(O(\log_2^2 n)\) 量级的,所以需要考虑新做法。
假设我们本来有一个上升序列,我们能否往里面插数?如果插入的数前面本来有 \(x\) 个数,那么它有 \(2^x\) 的贡献。于是容易想到先写一个最大的上升序列,再二进制拆分即可。
#include <bits/stdc++.h>
using namespace std;
long long read() {
char c = getchar();
long long x = 0, p = 1;
while ((c < '0' || c > '9') && c != '-') c = getchar();
if (c == '-') p = -1, c = getchar();
while (c >= '0' && c <= '9')
x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
return x * p;
}
const int N = 207;
long long x;
void solve() {
x = read();
long long p = 1, k = 0;
while (p * 2 <= x) {
p *= 2;
k ++;
}
x -= p;
vector <int> bit;
int cnt = 0;
while (x) {
bit.push_back(x % 2);
cnt += (x % 2 == 1); x /= 2;
}
cout << cnt + k << '\n';
for (int i = 0, j = cnt + k; i <= k; i ++) {
if (i > 0)
cout << i << ' ';
if (i < (int) bit.size() && bit[i])
cout << (j --) << ' ';
}
cout << '\n';
}
signed main() {
int t = 1;
t = read();
while (t --) solve();
return 0;
}
CF1922E Increasing Subsequences的更多相关文章
- [LeetCode] Increasing Subsequences 递增子序列
Given an integer array, your task is to find all the different possible increasing subsequences of t ...
- [Swift]LeetCode491. 递增子序列 | Increasing Subsequences
Given an integer array, your task is to find all the different possible increasing subsequences of t ...
- 491. Increasing Subsequences增长型序列
[抄题]: Given an integer array, your task is to find all the different possible increasing subsequence ...
- SnackDown Longest Increasing Subsequences 构造题
Longest Increasing Subsequences 题目连接: https://www.codechef.com/SNCKPA16/problems/MAKELIS Description ...
- Leetcode之深度优先搜索&回溯专题-491. 递增子序列(Increasing Subsequences)
Leetcode之深度优先搜索&回溯专题-491. 递增子序列(Increasing Subsequences) 深度优先搜索的解题详细介绍,点击 给定一个整型数组, 你的任务是找到所有该数组 ...
- [LeetCode] 491. Increasing Subsequences 递增子序列
Given an integer array, your task is to find all the different possible increasing subsequences of t ...
- LeetCode 491. Increasing Subsequences
原题链接在这里:https://leetcode.com/problems/increasing-subsequences/ 题目: Given an integer array, your task ...
- 【LeetCode】491. Increasing Subsequences 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 491. Increasing Subsequences
这种increasing xxx 题真是老客户了.. 本题麻烦点在于不能重复, 但是和之前的那些 x sum的题目区别在于不能排序的 所以.... 我还是没搞定. 看了一个Java的思路是直接用set ...
- Longest Increasing Subsequences(最长递增子序列)的两种DP实现
一.本文内容 最长递增子序列的两种动态规划算法实现,O(n^2)及O(nlogn). 二.问题描述 最长递增子序列:给定一个序列,从该序列找出最长的 升序/递增 子序列. 特点:1.子序列不要 ...
随机推荐
- Java和C++性能大比拼
用来运行Java语言的HotSpot VM主要是用C++语言来写的,所以我们在研究JDK时不得不去学习C++这门语言.C++和Java都是面向对象的语言,所以它们常被拿来做比较.本文将从性能的角度对比 ...
- C#之可访问性约束(可访问性不一致)
C# 语言中的有些构造要求某个类型至少与某个成员或其他类型具有同样的可访问性 (at least as accessible as).如果 T 的可访问域是 M 可访问域的超集,我们就说类型 T 至少 ...
- C#实现MCP Client 与 LLM 连接,抓取网页内容功能!
前面的课程,我们已经用C#实现了,自己的MCP Client. 下面我们一起来实现,MCP Client与LLM 对接. 一.添加依赖库 目前来说,绝大部分的大模型的API,都是遵循OpenAI的接口 ...
- deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?
DeepSeek-R1系列提供了多种参数规模的模型(1.5B.7B.8B.14B.32B.70B 和 671B),它们在模型架构.性能表现.资源需求和适用场景上有显著差异.以下是对这些版本的核心区别总 ...
- 纯前端实现图片伪3D视差效果
作者:vivo 互联网前端团队- Su Ning 本文通过depth-anything获取图片的深度图,同时基于pixi.js,通过着色器编程,实现了通过深度图驱动的伪3D效果.该方案支持鼠标/手势与 ...
- 转|如何从 100 亿 URL 中找出相同的 URL
题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找出 a.b 两个文件共同的 URL. 解答思路 每个 URL 占 64B,那么 50 亿 ...
- ARP服务及欺骗
ARP协议 定义:ARP(Address Resolution Protocol,地址解析协议)是一种网络协议,用于将网络层的IP地址映射为数据链路层的MAC地址.ARP协议在局域网中非常重要,因为网 ...
- EasyMR 安全架构揭秘:如何管理 Hadoop 数据安全
2017年,美国信用评级机构 Equifax 遭受黑客攻击,导致1.4亿个人的敏感信息泄露: 2020年,发生了 SolarWinds 公司的软件供应链遭受恶意代码攻击事件,涉及多个行业和国家: 20 ...
- Hack 说明
在今天的模拟赛中,部分同学由于对出现某个数在模 \(1000000007\) 意义下为 \(0\) 的情况不规范被 Hack. Hack 原理:开始时有 \(2\) 个 \(1\),先都加到 \(10 ...
- Django+DRF 实战:从异常捕获到自定义错误信息
一.DRF 异常 介绍 APIException 类是 DRF 异常的基类.通过继承APIException,DRF 提供了多种内置异常类. ParseError:当请求解析失败时抛出. Authen ...