ZZULIOJ 2134 维克兹的进制转换【思维+递推/Dp】好题!好题!

探讨了一种特殊的二进制转换问题,其中二进制数可以包含0、1和2三个数字。通过动态规划的方法求解对于任意非负整数N,其转换成这种特殊二进制形式的不同方案的数量。

2134: 维克兹的进制转换

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 304   Solved: 74

Submit Status Web Board

Description

我进入了突如其来的强光。闪烁。闪烁,闪烁,闪烁。我调整好眼睛,评估我前方的景观。

有东西在乱窜。我往下看,发现了一只小个的白色生物,用后腿站立着,嗅闻着我的躯体。它吸引了我的注意。

你有什么用途?

我分析这个生物。品红色热能光束一闪而过,它曾颤动的地方扬起尘埃。

哺乳动物...夜行习性...无可挑剔的听觉。难以置信的弱小。但它们的繁殖能力如此强大。

“唔,”我喃喃自语。希望能发现更加复杂的物体;那些东西把我给迷住了。

消化并学习:这是我的目的。和我一起旅行的其它来客都很原始:杀死并吃掉,杀死并吃掉。我需要收集所有可用的信息——收获更多有价值的资源。

维克兹是少数热爱学习的虚空来客之一,他带着非凡的意图探索着符文之地:吸收掉所有知识。凭借着他不断地注视,维克兹可以发射瓦解光线来灭除并分析他途中的一切东西,并为他供给数量庞大的信息。没人知道他为什么需要如此多的材料,尽管有人推测他设法了解符文之地,是为了加速它的毁灭。

有一天,维克兹突发奇想,他觉得古老的二进制魔法串太过单一,于是他规定二进制除了 0 和 1,还有 2。现在维克兹想知道该规则下十进制数 N 转换为二进制数的方案数,维克兹当然可以轻松算出来,但他正好缺一个一起游览符文大地的伙伴,于是他把这个问题交给了你,希望你不要让他失望才好。

 

Input

输入包括 T 组数据,每组数据有一个非负整数 N。(T <= 1e5, N <= 1e7)

 

Output

输出一个正整数代表十进制数 N 转换为二进制数的方案数。

 

Sample Input

4
1
2
3
4

Sample Output

1
2
1
3

HINT

1 ——> 1
2 ——> 10 or 2
3 ——> 11
4 ——> 100 or 20 or 12


思路:


想到点子上了问题就不难了。


如果当前数是一个偶数n,那么这个数的所有可行方案,要么最末尾是一个0.要么最末尾是一个2.

如果末尾是一个0.那么我们答案可以从n/2的所有可行方案中在末尾填一个0.

如果末尾是一个2.那么我们答案可以从n/2-1的所有可行方案中在末尾填一个2.

那么就有:dp【i】=dp【i/2】+dp【i/2-1】;

如果当前数是一个奇数n,那么这个数的所有可行方案,末尾都一定是一个1.

如果末尾是一个1.那么我们答案就只能从n/2的所有可行方案中在末尾填一个1.

那么就有:dp【i】=dp【i/2】;

那么我们考虑Dp维护一下.

为了显得直观一些,我们列出前9项的答案:


1 ——> 1
2 ——> 10 , 2
3 ——> 11
4 ——> 100 , 20 , 12

5 ——> 101 21

6 ——> 110 102 22

7 ——> 111

8 ——> 1000 200 120 112

9 ——> 1001 201 121


很显然,8是从4的三种方案填0以及从3的一种方案填2得到。

很显然,9是从4的三种方案填1得到。


#include<stdio.h>
#include<string.h>
using namespace std;
int dp[10000050];
void init()
{
    dp[0]=1;
    dp[1]=1;
    for(int i=2;i<=10000040;i++)
    {
        if(i%2==0)dp[i]=dp[i/2]+dp[i/2-1];
        else dp[i]=dp[i/2];
    }
}
int main()
{
    init();
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        printf("%d\n",dp[n]);
    }
}








内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值