洛谷 2320 & bzoj 1192 题解 (思维,构造)

bzoj4971记忆中的背包 构造+DP 题意:给你一个01背包方案的问题,给出背包上限w,模数p,最终方案k,构造出一种合法的物品序列,保证n<=40。构造大法好,第一次构造。。。 比较简单也比较好处理的一种方法是一堆1和几个大物品。。 于是先预处理出f[x][j]表示现在有x个1,能到达j方案数用的最少物品个数。 那么我们枚举x,假设当前用了i个1,即大物品的和距离w还差i,那么增加的方案数就是CixC_{x}^{i},然后用个g 阅读详情

原题链接:
洛谷
bzoj

题意简述

给定一个 n ( &lt; = 1 e 9 ) n(&lt;=1e9) n(<=1e9),构造一个序列使得:

  1. [ 1 , n ] [1,n] [1,n]中所有整数是这个序列中某些元素的和
  2. 字典序最小

输出这个序列

思路

我们一开始认为: n n n是 1 e 9 1e9 1e9,这个序列怎么也是 1 e 8 1e8 1e8,但是为什么还要输出呢?不是要 O L E OLE OLE。。。

仔细想想,并不是这样的。此时我突然想起了我们***初中初一期末考试题。和这个题一模一样,只是 n = 15 n=15 n=15。

我当时构造了一个 1 , 2 , 4 , 8 1,2,4,8 1,2,4,8。当时我的数学水平还没有现在掉的这么严重(只有全市前 100 100 100),那个时候我是前 20 20 20(我在江苏省苏州市)。对于当时做数学题经验丰富的我来说,构造这个并不难。

回忆一下当时的构造方法, 1 , 2 , 4 , 8 1,2,4,8 1,2,4,8。没错,我们只要类似“二进制拆分”就珂以了!!!所以,粗略估计答案长度是 l o g n logn logn级别的,即使 n = 1 e 9 n=1e9 n=1e9,也只有 30 30 30多一点。

但是并不是所有时候都是直接二进制拆分的,我们还要保证字典序最小。比如 n = 6 n=6 n=6的时候,应该是 1 , 2 , 3 1,2,3 1,2,3,而不是 1 , 2 , 4 1,2,4 1,2,4。这个问题很好解决,我们只要把暴力二进制拆分中的下取整改成上取整就好了。(即 ( n + 1 ) / 2 (n+1)/2 (n+1)/2)

代码:

#include<bits/stdc++.h>
using namespace std;
namespace Flandle_Scarlet
{
    int n;
    void Soviet()
    {
        int cnt=0;
        int a[40];
        while(n)
        {
            a[++cnt]=(n+1)/2;//这里改成(n+1)/2
            n>>=1;
        }
        printf("%d\n",cnt);
        sort(a+1,a+cnt+1);
        for(int i=1;i<=cnt;++i)
        {
            printf("%d ",a[i]);
        }putchar('\n');
    }
    void IsMyWife()
    {
        if (0)
        {
            freopen("","r",stdin);
            freopen("","w",stdout);
        }
        cin>>n;
        Soviet();
    }
};
int main()
{
    Flandle_Scarlet::IsMyWife();
    return 0;
}

回到总题解界面

BZOJ 2139 road(构造,最小生成树)【BZOJ 修复工程】 【BZOJ修复计划 #8】BZOJ 2139 road 【国家集训队】 阅读详情

相关推荐

安卓光速虚拟机ADB调试实战:从密钥配置到设备连接

本文详细介绍了在安卓光速虚拟机中进行ADB调试的完整实战流程。核心在于通过密钥配置解决设备未授权问题,并启用网络调试与端口映射,最终实现电脑与虚拟机的稳定连接。文章提供了从原理理解、脚本修改到实战命令和疑难排查的全方位指南,帮助开发者和爱好者高效利用光速虚拟机作为移动测试沙盒。

CAT789的专栏 556

BZOJ 3101(N皇后-N皇后O(n)构造一组解的方法)

3101: N皇后 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 70  Solved: 32 [Submit][Status] Description n*n的棋盘,在上面摆下n个皇后,使其两两间不能相互攻击… Input 一个数n Output

nike0good |Oier&ACMer | 熟能生巧 2931

90nm CMOS工艺下6μW超低功耗LDO设计实战:从原理图到版图全解析

本文详细解析了在90nm CMOS工艺下设计一款静态功耗仅为6μW的超低功耗LDO(低压差线性稳压器)的全过程。文章深入探讨了如何通过改进型翻转电压跟随器(FVF)架构实现无输出电容设计,在满足极低功耗和芯片面积高效(chip-area-efficient)要求的同时,确保环路稳定性与快速瞬态响应,为物联网、可穿戴设备等应用提供关键电源管理解决方案。

weixin_29196613的博客 274

思维题(1)洛谷(小鱼的航程)

就这样一直循环,并且小鱼还是双休就是周六周日不工作,我们根据要求可写出算法:首先如果出入值是周日那么过完一天我们可以把他当作周一来算,这样我们就可以设置循环参量,然后如果是周六的话过完一天就是周日,而如果是工作日的话每天要走250公里并且天数加一。这是一道很考验算法的问题,如果我们暴力枚举的话,这个问题会变得很复杂,然后如果我们根据题目写出符合题意的算法,那么这道题就变得简单了。然后根据一周七天这个规律我们可以设置一个循环,正如我们每周都是重复地12345671234567~

2301_80570929的博客 923

UCIe相关开源项目记录

目前找到的和UCIe协议有关的5个开源项目,如果也有正在做的朋友,欢迎私信交流

m0_64102565的博客 823

vasp算表面吸附流程_VASP表面吸附计算实例分析

本文主要为了记录在学习Vasp计算过程中如何设置INCAR中的一些参数,并不着重讲解其含义,详见可自行到vasp官网查阅。其次关于建模部分也不做细致讨论,一般结构可从Materials Studio里自带的晶体数据库导出,或从三大数据库网站上下载:1、Materaials Project网址:https://materialsproject.org/(强烈推荐,邮箱注册即可使用)2、CCDC网址:...

weixin_39617669的博客 2240

构造题(bzoj2296)

#include #include #include #include using namespace std; int t; int main(){  cin>>t;  while(t--){   int x;   scanf("%d",&x);   long long now=1234567890000000;   now+=x; now-=now%x;   if(x

renxinyu2002的博客 466

STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

qq_44343584的博客 9734

【bzoj4312】立方体 构造

DescriptionInput有若干行,每行三个数字 X;Y;Z 代表一组数据,表示立方体的长宽高加 1Output第 i 行数据输出Case#i: 第i组数据的答案Sample Input2 1 22 2 2 Sample OutputCase #1: 4Case #2: 15 HINTx,y,z<=1000Source郑州培训D3考试题T2,Orzydc大概是第一个正儿八经做的构造题吧…主要考

DQS的树洞 1086

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1669

Python爬虫实战:医院科室排班智能采集系统 - 从零构建合规且高效的医疗信息爬虫(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 1298

[USACO18DEC]The Cow Gathering(洛谷-5157)(树-思维题)

文章目录题目描述思路代码题外话 题目描述 Luogu-传送门 思路 首先我们可以发现这是棵树 然后我们可以通过分析题目发现: 如果此时走的 人 牛不是叶节点,最终会剩下至少两个单独的节点,不符合题意 所以 我们每次删除只能删除叶节点 (a,b)(a,b)(a,b) 表示 aaa 必须比 bbb 之前删 那么假设我们现在有棵树表示牛之间的关系(根节点任意): 然后我们现在有几组 (a,b)(a,...

Mouse_liang的博客 707

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7199

BZOJ 4412/Usaco2016 Feb Circular Barn(构造)

BZOJ 4412 /Usaco2016 Feb Circular Barn

sherlock_zhuang的博客 1288

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

bzoj 3119: Book(构造)

3119: Book Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 510  Solved: 264 [Submit][Status][Discuss] Description Wayne喜欢看书,更喜欢买书。 某天Wayne在当当网上买书,买了很多很多书。Wayne有一个奇怪的癖好,就是第一本

加载中... 594

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[bzoj3957][构造]To Add or to Multiply

Description 工业计算机处理器公司为顾客量身定做了非常快速、用于专门目的的处理单元。a-C-m系列的处理器(比如1-C-2和5-C-3)的指令集只有两种操作:   • A 数值加a   • M 数值乘m   处理器接收一个整数,执行一个A和M的指令序列(即程序)来修改输入,然后输出结果。举个例子,1-C-2处理器执行程序AAAM处理输入2返回输出10(计算过程是2→3→4→5→10),...

Rose_max的博客 521

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

[BZOJ3119]Book 构造

假设全部都是+A。那么M-N * X=A * N * (N-1) / 2。 有-B的话就会减去一些,M-N * X=A * N * (N-1) / 2 - d * (A + B)。 d为-B贡献的系数,-B发生在第i个和第i+1个中时,贡献-B*(n-i)。于是解出d,找到d的一种拆分方案即可。 代码:#include<iostream> #include<cstdio> #define ll

DOFYPXY的博客 503

[bzoj4971][构造]记忆中的背包

Description 经过一天辛苦的工作,小Q进入了梦乡。他脑海中浮现出了刚进大学时学01背包的情景,那时还是大一萌新的小Q解 决了一道简单的01背包问题。这个问题是这样的:给定n个物品,每个物品的体积分别为v_1,v_2,…,v_n,请计算 从中选择一些物品(也可以不选),使得总体积恰好为w的方案数。因为答案可能非常大,你只需要输出答案对P取 模的结果。因为长期熬夜刷题,他只看到样例输入中的...

Rose_max的博客 528

【BZOJ2296】随机种子(构造)

problem 给出 T 组询问,每组询问一个 x ,求出一个数,满足: 1)是 x 的倍数 2)十进制下答案包含 0∼9 中的所有数字 x &lt;= 10 ^ 6 要求答案 &lt;= 10 ^ 16 solution 前 10 位为 1234567890 假设 1234567890 000000 % x = A 后6位为 (x-A)%x(减...

weixin_30698297的博客 176

[构造] BZOJ 2717 [Violet 4]迷路的兔子

玄妙的构造 总共有C2nC_n^2对兔子 每次值班会对3对产生影响 那么答案的上界就是C2nC_n^2 确实存在达到上界的构造方法#include<cstdio> int n; int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); scanf("%d",&n); printf("%d\n",n*(n-1

雯舞 821

[BZOJ4790][构造] CERC 2016 D. Dancing Disks

CERC2016 D题题意有个6*6的棋盘,刚开始在(1,1)这个点有n个棋子叠起来(棋子大小无序),你可以从顶部移动任意多个棋子到相邻的位置,但是只能向下或者向右移动,要求你构造一种移动方法使所以棋子移动到(6,6)并且棋子大小从底向上降序Sample input 6 1 6 5 4 3 2 output 1 1 D 6 2 1 D 6 4 1 D 6 5 1 D 6 6 1 R

CE玩家 1071

bzoj 4398: 福慧双修(最短路建模/构造)

简述题意: 给定一个有向图,对于连接同两个点的边算作同一条,问不经过重复边的最小正权环。                      保证没有重边(这个是指有向的),没有自环。 算法:最短路+构造 难度:NOIP+ 题解: 有一种暴力的思路,感觉还不错,给大家说一下吧。 暴力: 首先介绍一个容易发现的性质,-&amp;gt;从1号点开始spfa,回到点1’,发生重复走的边一定是直接与1相连的边...

01232012的博客 702

[构造] BZOJ 2530 [Poi2011]Party

考虑删点   每次找一对没有连边的点对将其删掉 至少删掉了1个不在团中的点    那么不超过1/3次操作后所有不在团中的点都会被删掉 此时最多删掉了2/3个 #include #include #include using namespace std; const int N=3005; int n,m,cnt=0; int a[N][N],vst[N]; int main

雯舞 489

洛谷(修改数组、烦恼的高考志愿、水壶、选数)

修改数组 本题纯属思维题! 结论:全部改成1一定是最优解。 证明: 对于一个当前全部为 1的区间[l,r],考虑它与包含它的区间哪一个更优。考虑左端点左边一个位置l−1,若l−1为1则左端点向左移显然更优;若l−1为0,将l−1位置修改为1并将左端点向左移更优;此时x和y同时增大1,x−y不变 因此,一种最优的区间即为[0,n-1],即将所有为0的数改为1时,x-y取到最大值,且为原序列中1的个数。 代码: #include&lt;i...

m0_62593364的博客 456

BZOJ 2407 探险

dijkstra+思路

依然一笑作春温。 683
上一篇: hdu 6411 带劲的and和 题解(思维,好题,并查集)
下一篇: poj 3735 Training little cats 题解(构造,矩阵)
LightningUZ
博客等级 码龄9年 33粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值