BZOJ 1111: [POI2007]四进制的天平Wag DP+高精度

山东大学软件工程应用与实践——GMSSL开源库(六)——SM9密钥交换协议 2021SC@SDUSC 文章目录基本概念符号及辅助算法SM9密钥交换协议 基本概念 1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了Diffie-Hellman密钥交换算法。该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。 使用SM9通信的双方通过对方的标识和自身的私钥,经过两次或者可选的三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。该密钥可以作为对称密码算法的会话密钥,其中可选步骤用来实 阅读详情

时空隧道


还是旁边的ysq童鞋提醒我才发现这个题号如此…汪汪汪的悲哀QAQ


分析:
看了看题目再看看砝码都是4的整次幂…就知道是要转化成4进制再干别的事情…
转化完之后观察发现每一位只有4种可能0、1、2、3…
0:什么都不用做
1:如果只考虑这一位的话显然放砝码到右盘更优
2:放左盘右盘都一样
3:放在左盘更优(就是在左盘方1个4^x的砝码,右盘放1个4^(x+1)的砝码)
然后要求方案数?大概只能DP了…
f[i][0]代表第i位放在右盘
f[i][1]代表第i位放在左盘
f[i][0]=min(f[i+1][0],f[i+1][1])+lala[i]
f[i][1]=min(f[i+1][0]+1,f[i+1][1]-1)+4-lala[i]
在f[i][1]转移的时候f[i+1][0]+1是因为要从上一个拿走4的次幂拿走一个放在这里….(自己理解一下吧…本人语文水平有限QAQ)


代码如下:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
using namespace std;
const int maxn=2000+5,MOD=1e9;;
char m[maxn]; 
int a[maxn],b[maxn],len,num,lala[maxn],cnt,f[maxn][2],ans[maxn][2];
inline int chu(int a[],int b[]){
    int x=0;
    for(int i=1;i<=len;i++)
        b[i]=(x*10+a[i])/4,x=(x*10+a[i])%4;
    num=1;
    while(b[num]==0&&num<len)
        num++;
    for(int i=num;i<=len;i++)
        b[i-num+1]=b[i];
    len-=num-1;
    return x;
}
//f[i][0]代表第i位放在右盘
//f[i][1]代表第i位放在左盘
//f[i][0]=min(f[i+1][0],f[i+1][1])+lala[i]
//f[i][1]=min(f[i+1][0]+1,f[i+1][1]-1)+4-lala[i] 
signed main(void){
    cnt=0;
    scanf("%s",m);len=strlen(m);
    for(int i=1;i<=len;i++)
        a[i]=m[i-1]-'0';
    while(a[1]!=0){
        lala[++cnt]=chu(a,b);
        for(int i=1;i<=len;i++)
            a[i]=b[i];
    }lala[++cnt]=0;lala[0]=0;
/*  for(int i=1;i<=cnt;i++)
        cout<<lala[i];
    cout<<endl;
*/  memset(f,0x3f3f3f3f,sizeof(f));
    f[cnt][0]=0;ans[cnt][0]=1;
    for(int i=cnt-1;i>=0;i--){
        if(f[i+1][0]==f[i+1][1])
            f[i][0]=f[i+1][0]+lala[i],ans[i][0]=(ans[i+1][0]+ans[i+1][1])%MOD;
        else if(f[i+1][0]>f[i+1][1])
            f[i][0]=f[i+1][1]+lala[i],ans[i][0]=ans[i+1][1];
        else
            f[i][0]=f[i+1][0]+lala[i],ans[i][0]=ans[i+1][0];
        if(f[i+1][0]+1==f[i+1][1]-1)
            f[i][1]=f[i+1][0]+1+4-lala[i],ans[i][1]=(ans[i+1][0]+ans[i+1][1])%MOD;
        else if(f[i+1][0]+1>f[i+1][1]-1)
            f[i][1]=f[i+1][1]-1+4-lala[i],ans[i][1]=ans[i+1][1];
        else
            f[i][1]=f[i+1][0]+1+4-lala[i],ans[i][1]=ans[i+1][0];
    }
    cout<<ans[0][0]<<endl;
    return 0;
}

by >_< NeighThorn

镜头调焦的 调整的是焦距还是像距? 在镜头 “调焦”(即日常拍照时的)中,调整的核心是,而非焦距。 阅读详情

相关推荐

【SOFA】SOFA框架+Win10+VS2019 配置

SOFA (Simulation Open Framework Architecture)官网 SOFA 是一个开源的仿真框架,用于实时的物理仿真,而且主要针对医学上的仿真。主要用于研究人员开发新的算法,也可以作为一个有效的快速成型工具或是物理引擎。 官网中给出的配置方法写的很清晰,有着各个库或者软件的版本要求,仔细看按版本要求来 官网配置地址 官网给了两种方 1.通过脚本自动配置 2. 自己下载相关库通过CMake进行生成 第一种 没使用,不知道是否好使,因为如果其中有下载的东西,国内不一定能成功,大家可

GordonWei 5260

[POI2007]四进制的天平Wag

Description Mary准备举办一个聚会,她准备邀请很多的人参加她的聚会。并且她准备给每位来宾准备一些金子作为礼物。为了不伤及每个人的脸面,每个人获得的金子必须相同。Mary将要用一个天平来称量出金子。她有很多的砝码,所有砝码的质量都是4的幂。Mary将金子置于左边并且将砝码置于右盘或者两个盘。她希望每次称量都使用最少的砝码。并且,他希望,每次都用不同的称量方法称出相同质量的金子...

a5163273的博客 227

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 526

bzoj1111: [POI2007]四进制的天平Wag

光棍专属题目233 传送门 显然是要dp的辣。 设f[i]表示前i位的最小花费。 g[i]表示前i位,且有进位的最小花费。 转移自己yy一发就ok辣。 扯淡,还要高精度呢。#include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #

zyy大蒟蒻的博客 453

Unity 数字孪生笔记1 工具介绍

前言 工欲善其事必先利其器 流程思考 数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。 那么这个流程就很简单了。 整个流程分为三块:数据来源-》数据分析-》数据展示 输入数据 首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。 模型数据 工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个

Thissky的专栏 1万+

Fluent后台计算中Journal文件的自动化编写与优化实践

本文深入探讨了Fluent在Linux/Unix环境下进行后台计算时,Journal文件的自动化编写与优化实践。Journal文件作为Fluent后台计算的“灵魂”,是实现仿真流程自动化、保证计算可重复性与准确性的关键。文章从基础脚本骨架搭建、命令简写技巧,到进阶的参数化研究与批量计算实现,提供了详实的实战指南,帮助工程师大幅提升仿真效率。

postgres8guard的博客 755

BZOJ 1111: [POI2007]四进制的天平Wag 进制拆分,DP求方案数

DescriptionMary准备举办一个聚会,她准备邀请很多的人参加她的聚会。并且她准备给每位来宾准备一些金子作为礼物。为了不伤及每个人的脸面,每个人获得的金子必须相同。Mary将要用一个天平来称量出金子。她有很多的砝码,所有砝码的质量都是4的幂。Mary将金子置于左边并且将砝码置于右盘或者两个盘。她希望每次称量都使用最少的砝码。并且,他希望,每次都用不同的称量方法称出相同质量的金子。对于给定的质

I good vegetable a! 501

power bi 演唱会-佐罗

我是业务分析人员,注重使用性,因此,课程不到 30% 的内容就可以解决目前为止我碰到的所有业务问题,剩下的 70% 内容是帮助我提升,优化,升华,精益求精用的,比如第三方工具,比如代码运行速度优化,比如查询逻辑优化等等。系统性上来说,结构明晰,安排上非常有条理,层层递进;《BI 真经》,中有真经二字,略显夸大,而当我第一次证明了这点的时候,我也非常惊讶,这就是我做以下所有事情的一切动力。《BI 真经》综合考量思想性,系统性,本质性,创新性,通用性,技巧性,启发性,对比其他课程有压倒性的显著优势。

v_1090213742的博客 911

BZOJ 1111 POI2007 四进制的天平Wag 高精度+动态规划

题目大意:给定一个数n,要求将n表示成一些四进制数之和/差的形式,要求用的数最少,求方案数 光棍节快乐(巨雾 我们将n分解成4进制,从低位到高位考虑 如果这一位是0,显然不用考虑这位 如果这一位是1,显然从0开始往上加一个比较优,因为如果从0开始减掉3个还不如将高位-1然后把这一位+1 如果这一位是2,要么从0开始加两个,要么从0开始减掉两个 如果这一位是3,那么一定从0开始往下减一个

世界 1968

思科—OSPF多区域配置实验

实验目的:配置OSPF多区域,使得不同网段的PC互相ping通。 网络拓扑如下: R0的配置 Router>en Router#conf t Router(config)#int g0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int g0/0 Router(config-if)#ip add 192.168.

m0_46237205的博客 1万+

自动驾驶系统研发系列—全智能驾驶新高度:深入解析车道保持辅助(ELK)功能

车道保持辅助系统(ELK)是一种基于先进视觉感知技术的主动安全系统,能够通过车载摄像头实时监测道路上的车道线、道路边缘以及周围车辆的位置。这一功能的核心在于为驾驶员提供智能化的安全辅助,尤其是在驾驶员可能因疲劳、分心或其他原因无意识地偏离车道时,系统能够主动干预,从而避免危险发生。ELK系统不仅仅依靠摄像头对道路进行感知,还结合其他传感器的数据(如雷达),实时评估自车与车道线、周边车辆的相对位置。当系统检测到车辆即将偏离车道,或越过道路边缘时,ELK会通过控制电子助力转向系统(EPS)

u013889591的专栏 1210

BZOJ1111 [POI2007]四进制的天平Wag

这种题号的题我之前竟然一直没做…… 先转成四进制,假设下标小的代表低位,下标大的代表高位 那么问题就是让你把这个四进制数表示成两个四进制数的差,使得这两个四进制数各位上的数的和最小,并求方案数 f[i]表示想表示出前i位最少要多少个砝码 g[i]表示想表示出前i位,并且第i位在做减法的时候向第i+1位借了1的方案数 转移很简单 写代码的时候思路有点混乱,于是参照了一下claris的代码

neither_nor 553

课堂练习及课后作业2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。

Junds0的博客 1万+

bzoj1111[POI2007]四进制的天平Wag 高精度+dp

%%%%%%%%%%%%Claris,太强啦。 手写高精度超短。 具体看题解,代码太丑就不贴了。。。 http://www.cnblogs.com/clrs97/p/4616506.html

老臣 523

VC中sqlite的使用

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

BZOJ 1111 POI2007 四进制的天平

POI , DP

Fuxey 1484

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[二幂拆分] hihoCoder Challenge 29 B. 快速乘法 & BZOJ 1111[POI2007]四进制的天平Wag

参考这里 这是个经典问题,我们考虑记忆化搜索的过程,那么每次一个状态x,会产生新状态 ~x+1什么的,而这个状态数总数是O(logn)O(\log n)的 举个链接中的例子 1010110 –> 10110 –> 110 -> 10 0101010 –> 1010 所产生的所有串的数目刚好是x的位数减去末尾的0的数目那么我们就可以直接写一个记忆化搜索,然而这不优美 可以直接从低向上DP

雯舞 886

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

bzoj1111 [POI2007]四进制的天平Wag

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1111 【题解】 这题号注定单身。 转成四进制考虑 设f[i]表示从第i位往前的min,g[i]表示从第i位往前(第i位借1位)往前的min 那么转移随便做了。。 md还要取模,没看这个wa了3发 # include <stdio.h> # inc...

aklm45097的博客 167

BZOJ 1110 [POI2007]砝码Odw 进制+贪心

BZOJ 1110 [POI2007]砝码Odw 进制+贪心

-Claude 1714

bzoj 1111

先看看网上我感觉有缺陷的题解: 有几个显而易见的结论: 最高位不能高于这个数四进制表示的位数+1如果要退位 , 每次最多退一位 , 也就是把高位上的1 , 拆成4个低位每个位上的数最多只有两种状态 , 这取决于上一位是否退了 d[i][j]处理到第i位,且第i−1位[(j==0)没有,(j==1)有]退位时的答案 w[i][j]此时的方案数 然后就可以开心的DP了 , 转移方程很

guoshiyuan484的博客 371

BZOJ1111: [POI2007]四进制的天平Wag

我们先把n转4进制 然后这题有几个性质: 使用的砝码最大幂次不超过n的最高位+1 每一位如果接受高位的退位,接受的次数不超过1次然后就可以根据这个dp了 从低位往高位dp f[i]表示第i位不接受高位的退位,1~i最少需要的砝码数 g[i]表示第i位接受高位的退位,1~i最少需要的砝码数 得 f[i]=min(f[i−1]+a[i],g[i−1]+a[i]+1)f[i]=min(f[

L_0_Forever_LF的专栏 476

博弈论 Nim游戏与SG函数

SG函数&Nim游戏

NeighThorn的博客 1983

BZOJ 1112: [POI2008]砖块Klo 线段树维护区间中位数

线段树

NeighThorn的博客 1777

欧拉线性筛&欧拉函数&莫比乌斯函数

欧拉线性筛+欧拉函数+莫比乌斯函数+vijos1889+BZOJ2705

NeighThorn的博客 1502

BZOJ 1104: [POI2007]洪水pow 并查集

时空隧道分析: 首先我们可以得出水泵一定是安在城市上的… 以上纯属瞎扯淡…只是答案相等可以…至于为什么我们待会儿再说… 我们取出所有的城市放在s集合中,因为海拔高的可以被海拔低的覆盖,所以我们从小到大排序从所有的元素中取出海拔小于等于当前城市海拔的元素,合并相邻元素,然后查询当前城市所在的联通块是否已经被覆盖,如果没有就在当前城市安上水泵… 回到最初的那句话…有一个数据是长这个样子的: 然

NeighThorn的博客 1091

BZOJ 1597 土地购买 斜率优化

斜率优化

NeighThorn的博客 1090

BZOJ 1098: [POI2007]办公楼biu 并查集优化bfs找反图联通块

并查集优化bfs+反图

NeighThorn的博客 1034
上一篇: BZOJ 1104: [POI2007]洪水pow 并查集
下一篇: BZOJ 1110: [POI2007]砝码Odw 进制转换+贪心
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值