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.子序列不要 ...
随机推荐
- 痞子衡嵌入式:不处理i.MXRT1064片内Flash的RESET#引脚可能会导致无法启动或程序跑飞
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1064片内Flash的RESET#引脚对程序启动和运行的影响. 上一篇文章 <i.MXRT1024/1064片内4M ...
- 《OKR》| 聚焦小目标, 成就大梦想
今天想和大家分享的书籍是 <每个人的 OKR>. 恰好我司也是采用 OKR 结合 KPI 的方式进行目标和绩效管理, 在实践中通过放大目标的功能, 缩小行动的自由, 聚焦在单一方向的机制, ...
- 基于PySyft与TensorFlow的医疗数据协同分析系统实现教程
1. 引言:医疗数据协同分析的挑战与机遇 在医疗信息化进程中,数据孤岛问题日益突出.各医疗机构积累的海量医疗数据受限于隐私法规(如HIPAA.GDPR)无法直接共享,形成数据壁垒.联邦学习技术的出现为 ...
- RPC实战与核心原理之优雅启动
优雅启动:如何避免流量打到没有启动完成的节点? 回顾 优雅停机,就是为了让服务提供方在停机应用的时候,保证所有调用方都能"安全"地切走流量,不再调用自己,从而做到对业务无损.其中实 ...
- B1031 查验身份证 (15 分)
描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5 ...
- 电梯题目集总结性Blog
一.前言 对这三次题目集的总结: 这三次作业的难度是层层递进的.题目数量安排得当,给的时间也足够用.前面的基础题像搭积木一样,带着我们一步步熟悉怎么设计类和对象:但每次的最后一题就像突然升级的关卡 ...
- odoo14里面开发一个简单的action.client 的tag 模板例子
1.js模板 web_template.js odoo.define('web', function (require) { "use strict"; var core = r ...
- deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?
DeepSeek-R1系列提供了多种参数规模的模型(1.5B.7B.8B.14B.32B.70B 和 671B),它们在模型架构.性能表现.资源需求和适用场景上有显著差异.以下是对这些版本的核心区别总 ...
- 安全漏洞修复导致SpringBoot2.7与Springfox不兼容,问题排查与处理
开心一刻 2021,朋友某一次核酸检测,跟我聊天朋友:今天我们小区做核算,队长死了我:卧槽,过劳死吗朋友:?????我:啊?朋友:队 长死了,队伍很长!我:哈哈哈,我以为做核算的队长死了呢 背景介绍 ...
- Vue 学习笔记 [Part 6]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 〇. 修改配置:webpack.base.conf.js起别名 一. Vue CLI 1.1. Vue CLI3 cli3与2的区别 如何通过 ...