Sumsets(递推)

poj 2229 Sumsets 【完全背包 or 递推】 Sumsets Time Limit: 2000MS   Memory Limit: 200000K Total Submissions: 14968   Accepted: 5978 Description Farmer John commanded his cows to search for different sets of 阅读详情

Description
Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that sum to 7:

1) 1+1+1+1+1+1+1
2) 1+1+1+1+1+2
3) 1+1+1+2+2
4) 1+1+1+4
5) 1+2+2+2
6) 1+2+4

Help FJ count all possible representations for a given integer N (1 <= N <= 1,000,000).
Input
A single line with a single integer, N.
Output
The number of ways to represent N as the indicated sum. Due to the potential huge size of this number, print only last 9 digits (in base 10 representation).
Sample Input
7
Sample Output
6

一个数,只用2的幂次表示,共有多少种表示方法。

这题我一开始不会,恩,去年还上去就秒的- -,实际就是一个递推。偶数的时候,一定是有偶数个1参与表示的(除了1其他都是偶数),即可以从dp[i - 2]转移过来,如果表示中没有1,那么都是偶数,全部除以2,表示的个数和dp[i/2]是一样的,即dp[i] = dp[i - 2] + dp[i/2];
若是奇数,在dp[i - 1]的方案中全部加1即可。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<set>
#include<map>
#include<vector>
#include<stack>
#include<utility>
#include<sstream>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1005;
int dp[1000005];
int main()
{
    #ifdef LOCAL
    freopen("C:\\Users\\ΡΡ\\Desktop\\in.txt","r",stdin);
    //freopen("C:\\Users\\ΡΡ\\Desktop\\out.txt","w",stdout);
    #endif // LOCAL
    memset(dp,0,sizeof(dp));
    int n = 1000000;
    dp[1] = 1;dp[2] = 2;
    for(int i = 3;i <= n;i++)
    {
        if(i%2)dp[i] = dp[i - 1];
        else dp[i] = (dp[i - 2] + dp[i/2])%1000000000;
    }
    while(scanf("%d",&n) != EOF)
    {
        printf("%d\n",dp[n]);
    }
    return 0;
}
大模型LangChain面试题及参考答案(上) 明确的输入输出类型:函数参数需包含类型注解,返回值需定义清晰的数据结构(如JSON格式),便于LLM理解参数含义和调用方式。工具描述:通过文档字符串或独立的描述对象(如Tool类)说明函数的功能、参数用途及调用场景,供LLM判断是否需要调用。示例:定义一个计算两个数之和的工具函数@tool"""计算两个整数的和。参数:- a:第一个整数- b:第二个整数调用场景:当用户需要进行数值加法计算时使用。"""除了内置的。 阅读详情

相关推荐

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解

本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。

weixin_29161719的博客 139

Sumsets(UVA10125)整数集合

备课的时候发现了这道题,对于初识哈希来说并不算一道很简单的题。在查阅林厚从老师的示例代码与往届OI选手的博客后,大致理解了本题的思路。 相关标签: Hash 跳转至本题 Description 给定一个整数集合S,求一个最大的d,满足a+b+c=d,其中a,b,c,d∈S Input 多组数据,每组数据包括: 第一行一个整数n,代表元素个数 下面n行每行一个整数,代表集合元素 输入结束的标志...

稳定是止步不前的第一特点 539

【嵌入式面经】上海 70迈 线上笔试

“关注|点赞|收藏” 福利干货第一时间送达!最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!

qq_56921854的博客 1136

贤鱼的刷题日常(数据结构栈学习)-1551:Sumsets--题目详解

1551:Sumsets--题目详解

贤鱼的博客 1012

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 338

【视线追踪】视线追踪的性能评估框架 及 基础知识

文章目录一、 前言二、 眼球追踪基础1. 眼动类型研究2. 基本设备3. 校准 calibration4. 眼球视线和头部姿态的关系5. 视线追踪精确度的评估三、 视线估计算法1. 基于2维回归2. 基于3D模型1) 单摄像头2) 多摄像头3. 基于交叉比4. 基于外观5. 基于眼睛形状的方法四、 实现估计的应用1. 电脑2. 电视3. 头戴设备4. 汽车5. 手持设备6. 设备配置五、 视线追踪的性能指标和错误原因1. 不同平台之间差异性很大2. 影响视线追踪可用性的因素六、 视线追踪系统的性能评估框架1

火火的博客 5307

Sumsets(3sum问题,枚举d,c二分a+b)

Sumsets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9997   Accepted: 2736 Description Given S, a set of integers, find the largest d such that a + b + c = ...

weixin_34055787的博客 242

uni-app - 修改默认端口,H5 项目控制台运行出来的 IP 地址的默认端口号(H5 项目运行后控制台,修改项目运行到内置浏览器默认 8080 端口号)

uni-app运行到H5修改默认端口号,uni-app如何修改默认端口,uni-app修改默认端口,uni-app本地运行修改调试已上线微信H5项目,请问在UNIAPP的H5运行调试时候的IP是否可以自己设置固定,uni-app开发环境,如何设置h5服务器的端口,uni-app如何修改默认端,uni-app修改默认端口,uni-app指定端口号,uni-app-修改H5项目控制台运行出来的IP地址的默认端口号(H5项目运行后控制台,修改项目运行到内置浏览器默认8080端口号)

🏆 前端领域优质创作者 9885

Sumsets(挑战程序设计竞赛)

链接: https://www.papamelon.com/problem/305 思路 这道题就是一个完全背包求方案数,物品是2的次幂,体积是n,求体积是n时有几种方案,其实很简单,可是我却突然想到一个问题就是为什么不可以先遍历体积再遍历2的次幂,我是非常不理解。 代码 /* 这题怎么都想不通的一点是为什么不能先遍历体积,再遍历2的次幂 */ #include<bits/stdc++.h> #define int long long using namespace std; const i

123 288

利用插件扩展 Qt 应用程序

不仅 Qt 本身可以通过插件进行扩展,而且 Qt 应用程序也可以通过插件来扩展,这需要应用程序使用 `QPluginLoader` 检测和加载插件。

青春不老,奋斗不止! 1万+

通信原理 | CRC循环冗余校验码(最简介明了的原理和matlab程序)

异或运算: 多项式: CRC校验中用到的除数,是由多项式的各项系数组成的,如下所示: 没有的项系数为0,比如:x5次方、x3次方下一步,在原数据串的末端加“0”0的数量由多项式决定具体来说,多项式的阶数是多少就加几个0 具体操作: 现在,我们有了除数,也有了处理过的数据串,如下所示: 就可以开始计算校验和 了将数据串第一个1与除数左对齐,按位进行异或操作: 将未处理的数据搬下来作为新的数据,重复操作: 将新的数据串第一个1与除数左对齐,再重复按位异或操作: 如此循环,直到所有数据都处理过

若北辰 2357

UVA - 10125 Sumsets (预处理 + 二分)

大体题意: 给你一个最大长度为1000的数组,让你从中找出四个不同的元素 a,b,c,d,满足  a + b + c == d 如果存在 就让d 尽可能的大,否则输出no solution 思路: 把等式变换一下  a + b == d - c; 那么我们可以先两层循环,求出所有的a + b 来,然后再两层循环枚举 d 和c,二分 a+b,看看满不满足! 这样复杂度n*n log n级

aozil_yang的博客 470

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

poj 2299 sumsets 递推和完全背包

Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 26306 Accepted: 9943 Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number...

miracle from life 222

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Sumsets 求和 加强版(递推.递归)

1.分解的数字中没有1 (如果有1,如 n=4时 1 1 2 在第一种情况时出现过 在第二种情况也可以被计算进去)也就是说 是由dp[n - 2] 中每个分解方式中的数字 都*2 就是 n。dp[i][j] = sum( dp[i - 1][ j - k * w[i] ] ) 其中 j - k * w[i] >= 0。0.分解的数字中至少有两个1(偶数不可能只包含一个1) 那么 dp[n] = 1 + 1 + dp[n - 2].所以 dp[n] = dp[n - 2] + dp[n / 2]

wingacd的博客 321

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Sumsets 递推

Sumsets Time Limit : 6000/2000ms (Java/Other)Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 45Accepted Submission(s) : 20 Font:Times New Roman|Verdana|Georgia Font ...

baizhen6460的博客 141

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

hdoj 2709 Sumsets 【递推】

题意:就是让你只用2的幂次(1, 2, 4。。。)计算出给定的一个整数N有多少种组合方法,(所有的数字使用次数不限)最后对10的九次幂取余。 策略:这道题咋一看是母函数, 但是1 <= N <= 1,000,000,用传统的母函数不仅会超时,还会超出限定的内存容量。所以只能想其他的方法,一般的,对这种大数据的肯定是有规律的,仔细研究, 发现(1, 1)(2, 2), (3, 2), (4, 4), (5, 4), (6, 6), (7, 6), (8, 10),(9, 10)第一个数是序号,后面的是种类数,

shengweisong 832

HDU - 2709 Sumsets 【递推】

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2709 题意 给出一个数N 要求有多少种方式 求和 能够等于N 加的数 必须是 2的幂次 思路 首先可以想到的是 如果 N 是奇数的话 那么 到达N 的方法数 就是 到达 N - 1 的方法数 因为就相当于 把 所有到达N-1 的方法数 ...

banshen0201的博客 139

HDU2709 Sumsets【递推】

题目大意: 将一个整数N分解成2^i相加的形式,共有多少种分法。例如:7 = 1+1+1+1+1+1+1 = 1+1+1+1+1+2 = 1+1+1+2+2 = 1+1+1+4 = 1+2+2+2 = 1+2+4,共有6种分法。 思路: 设a[n]为整数n分解成2^i相加形式的分法个数。 当n为奇数时,n-1为偶数,n = 1 + n-1,分解出一个1,再分解偶数n-1,也就是a[n-1]种分法。 当n为偶数时,有两种分解方法。 1):相加的2^i中含有1。因为n为偶数,所以至少有两个1,即n = 1

程序员充电站(itcharge) 1584

Sumsets【递推】

Sumsets  POJ - 2229  Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possibl...

C++的星空 293

hdu2709 Sumsets 递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2709 感觉很经典的一道递推题 自己想了有半天的时间了。。。。比较弱。。。。 思路: 设f[n]表示和为n的组合数; 那么 当n为奇数时,很简单,相当于在f[n-1]的每一个组合方案中的后面加1 所以当n为奇数时,f[n]=f[n-1]; 我们重点讨论n为偶数的情况: n为偶数时,分为每个...

weixin_30521161的博客 163

【hdu 2709 Sumsets【递推】】

Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that

hubayi31072的博客 407

POJ 2229 Sumsets 递推

点击打开链接 #include #include #include using namespace std; const int M =101000000; int dp[M]; //dp[n] n的分解方法数 // n是奇数 : 肯定有1个1 还差n-1 dp[n-1] //n如果是偶数 则 1的个数 两种可能 :0个1 dp[n/2]的每个构成

Masamiiiiii 372

Poj2229-Sumsets-【递推】

传送门:http://poj.org/problem?id=2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 20086 Accepted: 7849 Description Farmer John commanded

jadeyansir的博客 252

HDU 2709 Sumsets 递推

Sumsets Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2489    Accepted Submission(s): 1003 Problem Description Farmer John comman

LZK1997的博客 456

POJ2229Sumsets 递推水题

一叶落寞,万物失色 Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of

LjcoderDCC的博客 1015
上一篇: 607A Chain Reaction(DP)
下一篇: Apple Catching(DP)
Techay
博客等级 码龄11年 11粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值