P6218 [USACO06NOV] Round Numbers S - ( 数位dp )

[USACO06NOV] Round Numbers S 题解 题目链接:https://www.luogu.com.cn/problem/P6218 思路: 很明显的数位DPDPDP…… 因为二进制数中0/10/10/1的个数有关,可以确定DPDPDP状态为f[i][j][k]f[i][j][k]f[i][j][k],分别为数位/000的个数/111的个数。继而考虑状态转移…… 讲解都在代码里了,因为面向萌新,内容较为仔细冗杂,大佬勿喷QAQQAQQAQ。 完整代码: #include<cstdio> #include<algorithm> 阅读详情
题目链接点击进入
题目

在这里插入图片描述

思路

state//当前 0 的数目与 1 的数目的差值( 因为差值会出现负数所以加个偏移量 )
dp [ i ] [ j ] 为状态第 i 位数字之后,且 0 的个数 - 1 的个数的差值 为 j 的数量

代码
//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
#define int long long
//#define double long double
//#define max(a,b) a>b?a:b
//#define min(a,b) a<b?a:b
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=2e4+10;
const int mod=998244353;
const int Mod=1e9+10;
const double eps=1e-9;
const int N=1e6+10;
int a[40];
int dp[40][80];
int dfs(int pos,int pre,int state,bool lead,bool limit)
{
	if(pos==-1) return state>=0;
	if(!limit&&!lead&&dp[pos][state+40]!=-1) return dp[pos][state+40];
	int up=limit?a[pos]:1;
	int res=0;
	for(int i=0;i<=up;i++)
	{
		res+=dfs(pos-1,i,state+(i==0?(lead?0:1):-1),lead&&i==0,limit&&i==a[pos]);
	} 
	if(!limit&&!lead) dp[pos][state+40]=res;
	return res;
}
int solve(int x)
{
	int pos=0;
	while(x)
	{
		a[pos++]=x%2;
		x/=2;
	}
	return dfs(pos-1,-1,0,1,1);
}
signed main()																						
{	
//	ios::sync_with_stdio(false);
//	cin.tie(0);cout.tie(0);
	int l,r;
	memset(dp,-1,sizeof(dp));
	scanf("%lld%lld",&l,&r);
//	cout<<solve(10)<<endl;
	printf("%lld",solve(r)-solve(l-1));
    return 0;
}
福彩快乐8智能选号系统研究 本文介绍了一款福彩快乐8智能选号系统的开发过程。系统首先通过数据采集获取历史开奖数据,作为分析的基础。随后,对采集的数据进行深入分析,以识别可能的模式和趋势。基于这些分析,系统能够智能预测未来的开奖号码,如2025129期的预测。最后,通过模拟兑奖功能,用户可以直观地看到预测结果的实际效果。文章鼓励感兴趣的读者点赞并领取源代码,以便自行探索和使用该系统。 阅读详情

相关推荐

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1237

[HDU1693]Eat the Trees

插头dp

srand(time(0)) 569

【UE5】Vosk插件实战:离线语音识别与TTS朗读全流程解析

本文详细解析了如何在UE5中利用Vosk插件实现离线实时语音转文字功能。从环境配置、插件与模型准备,到核心C++组件封装与蓝图系统搭建,提供了完整的实战教程。重点解决了离线语音识别在游戏开发中的延迟、隐私和网络依赖问题,并演示了从语音识别到TTS朗读的完整交互闭环,为开发安全、实时的语音交互应用提供可靠方案。

weixin_29021291的博客 510

HDU - 1693 插头dp 艰难入门

什么是插头dp? 首先我们要先知道它能解决那些问题。一般都是一张方格图里有关连通性的一些问题。 那么对于一个格子而言,他就

wyxxzsy的博客 659

【问题解析】Matlab Function的易错点(Variable Size)

Matlab Function的易错点

CrazyRabbit的博客 9865

告别ROS1思维:在ROS2 Humble上,用Python搞定MoveIt2机械臂控制的完整流程

本文详细介绍了在ROS2 Humble环境下使用Python控制MoveIt2机械臂的完整流程。从环境配置、架构变革到实战操作,涵盖URDF适配、Action接口编程及性能优化技巧,帮助开发者高效迁移ROS1项目至ROS2平台,实现工业级机械臂控制。

weixin_30352645的博客 449

【插头DP】Eat the trees

Eat the Trees Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1345    Accepted Submission(s): 634 Problem Description Most of us know t

wu_yihao的专栏 619

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第一部分

环形谐振器教程的第 1 部分使用 MODE 来设计和仿真环形谐振器。 自由光谱范围 (FSR) 和品质因数 (Q 因数) 是这种面向片上通信应用的基于绝缘体上硅 (SOI) 波导设计的关键性能指标。

weixin_45719141的博客 3万+

【HDU1693】Eat the Trees(插头DP)

题目大意:找若干个环,布满地图所有白格,求方案数。题解:dp[I][j][s]表示I,j轮廓线时,轮廓线上的插头状态为s(01状态压缩),的方案数。转移: ①当前格为白格: 不能增加新插头。 任选一个蓝插头 必须选下面两个蓝插头。 ②当前格为黑格 1.有插头通往这里:不可能,方案数为0; 2.没有插头通往这里:直接转移上一次方案数。代码:#include<cstdio> #

CaptainChen的博客 438

DAMMFND: Domain-Aware Multimodal Multi-view Fake News Detection

虚假新闻的泛滥不仅严重阻碍了互联网社交媒体的健康发展,还在政治、经济和社会层面造成了实际危害,凸显了自动化虚假新闻检测的重要性(Zhou 等,2015;Cui 等,2019;Zhu 等,2022a;Li 等,2024c,b,a)。现有的虚假新闻检测方法通常聚焦于特定领域的新闻,例如健康或政治领域。然而,在现实世界中,社交媒体上的新闻往往跨越多个领域,这就要求现有的虚假新闻检测方法必须考虑多域泛化(Nan 等,2021;Qi 等,2019;Zhu 等,2022b)。

qq_52053775的博客 337

黑猫带你学eMMC协议第22篇:emmc可靠写详解(Write Reliability)

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有部分错误请留言。 本文部分内容可能源自网络,侵删。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 1、什么是可靠性写属性(Write Reliability)? 2、可靠写和普通的写有什么区别? 3、设置可靠写的流程及流程框图。 4、可靠写需要遵循哪些规则? 1.3 参考链接 本文主要参考链接:http://www.up48.com/cn/support/8_37.html 2 什么

黑猫奥利奥的博客 3121

HDU1693

HDU1693Eat the Trees 给你一个N*M的矩阵,矩阵中有好格子和坏格子,坏格子不能走,问你能找出多少种方法在这个矩阵中画规则的圈(可以有多个圈). 输入:首先是一个T(1 输出:以 Case 1: There are 3 ways to eat the trees.这种形式输出结果.保证结果不超过int的上限. 分析:此题就是URAL1519的变形,不过这题可以允许有多个圈

code 1034

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

【保姆级教程】YOLOv8_OBB旋转目标检测:训练自己的数据集

m0_51579041的博客 1万+

洛谷 P6218 [USACO06NOV] Round Numbers S 题解 数位dp

数位dp 动态规划 DFS 记忆化搜索 洛谷题解 C++代码 附详细注释

一只摸鱼的bbc 1468

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IDEA的使用指南

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

【BZOJ】1662: [Usaco2006 Nov]Round Numbers 圆环数(数位dp)

http://www.lydsy.com/JudgeOnline/problem.php?id=1662 这道题折腾了我两天啊~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 果然还是太弱 !!!!!!!!!! 一直想不通啊。。 数位dp太神了 。。orz 看题解各种不会啊。。。(神犇们的题解都说,裸数位dp,没了QAQ) 参考论文刘聪《浅谈数位类统...

221

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

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

[USACO06NOV] Round Numbers S / 区间圆数【数位DP】

>Link ybtoj区间圆数 >Description 如果一个正整数的二进制表示中,0 的数目不小于 1 的数目,那么它就被称为“圆数”。 请你计算,区间 [l,r] 中有多少个“圆数”。 >解题思路 也是模板的数位DP,fi,jf_{i,j}fi,j​表示前iii位中 0 的数目为jjj的方案数 只是不知道为什么我一直A不了,有一个点超时了几ms QAQ崩溃了 >代码 #pragma GCC optimize(2) #include <iostream> #

//(^ o ^)// 394

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

1662: [Usaco2006 Nov]Round Numbers 圆环数

1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 270  Solved: 156 [Submit][Status][Discuss] Description 正如你所知,奶牛们没有手指以至于不能玩“石头剪刀布”来任意地决定例如谁先挤奶的顺序。她们甚至也不能通

CRZbulabula的博客 975

bzoj 1662: [Usaco2006 Nov]Round Numbers 圆环数(枚举)

1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 413  Solved: 224 [Submit][Status][Discuss] Description 正如你所知,奶牛们没有手指以至于不能玩“石头剪刀布”来任意地决定例如谁先挤奶的顺序。她们甚至也不能通过仍

加载中... 618

HDU-1693-插头dp

懂了这道题还不算懂插头dp。 我现在就是不懂插头dp。 要想懂插头dp就要先懂状态dp。 状态dp之于插头dp,就像 trie树之于ac自动机。 __int64 dp[13][13][1<<13]; int ok[13][13]; int n, m; int main() { int t; scanf("%d", &t); for(int tt=1; t

walk_up的专栏 1005

hdu 1693 插头dp

题意:在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少中方法。 这题是插头dp,刚刚学习,不是很熟悉,研究了好几天才明白插头dp的方法,他们老是讲一些什么轮廓线啊,插头啊什么的,刚开始完全不知道这些事干什么的,看完cdq的大作后也是

XYM-AC之路 6254

hdu 1693 插头dp入门

hdu1693 Eat the Trees 题意 在\(n*m\)的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少种方法。 解法 这是一道插头dp的入门题,只需要考虑插头的有无,不需要维护连通性,很愉快。 代码 #include <cstring> #include <cstdio> #include <cstdlib> #...

weixin_30917213的博客 172

HDU 1693 Eat the Trees (插头DP,闭合路径)

之前对于经典骨牌的轮廓线DP的位压缩,采用的如下形状的位压缩: 当ij判断放置哪种骨牌时,是根据k4k3k2k1k0判断的,在填入了骨牌后,转移到的状态也是由k3k2k1k0ij这样排布的,就是原状态左移一下,如果横着放骨牌就会影响到k0位,竖着放和不放都是把ij从右边附加到原状态上。 本题的插头DP是保存插头的状态,采用如下的状态: 红线就是轮廓线,轮廓线上有插头。

可视化和机器学习 2148

HDU 1693(状态压缩 插头DP)

我们引用国家队2008年陈丹琦的大作——《基于连通性状态压缩的动态规划问题》,上面对于插头、轮廓线的概念有详细的解释,不再赘述。 我们使用一个三维数组,前两维表示所在的格子,后一维表示轮廓线的状况,值为方案数。 在每一行开始前,我们需要把上一行最右的轮廓线转换为这一行最左的轮廓线,因此执行一次左移操作(实际上轮廓线是进行了向右的一次滑动) 然后枚举...

weixin_30602505的博客 148

HDU-1693 Eat the Trees(插头DP)

Eat the Trees 题目链接 Most of us know that in the game called DotA(Defense of the Ancient), Pudge is a strong hero in the first period of the game. When the game goes to end however, Pudge is not a ...

darren0424的博客 217

HDU1693: Eat the Trees 题解

插头dp模板题 每个位置只有两种情况:有插头和无插头,最无脑的版本了 设当前格子的左侧插头为plug1,上侧插头为plug2,有以下几种情况 plug1=0,plug2=0 在当前格子添加向右和向下的插头 plug1=1,plug2=0 继续向右延伸或向下拐弯 plug1=0,plug2=1 继续向下延伸或向右拐弯 plug1=1,plug2=1 在这个格子会合 注意处理一下障...

IcePrincess_1968's World 361

hdu刷题路线

第一阶段:开始入门吧!(15天,53题) 一.输入输出练习(2天,10题) 1000、1089—1096、1001 二.简单操作:(2—4天,12题) 2000—2011、2039 三.英文题试水(3—4天,8题) 1720、1062、2104、1064、2734、1170、1197、2629 四.回归水题(4-6天,24题) 2012—2030、2032、2040...

越看越喜欢啊 5520
上一篇: P2657 [SCOI2009] windy 数 -( 数位dp )
下一篇: 牛客练习赛83 - 计算几何( 数位dp )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值