当前位置: 首页 > news >正文

ICPC 2022 网络赛 d ( 数位dp + 二分

#include<bits/stdc++.h>
using namespace std;
using VI = vector<int>;
using ll = long long;
const int mod = 998244353;ll n;
int d[100];
int dp[60][40][40][2];
set<int> s;
//枚举数位,枚举这一位余数是几
//每一位的限制,
int dfs(int pos , int ct1 , int h0 , int lead0 , int limit){if(pos == -1){if(ct1 == h0 && ct1) return 1;else return 0;}auto x = dp[pos][ct1][h0][lead0];if(x != -1 && !limit) return x;x = 0;int up = limit ? d[pos] : 1;for(int i = 0 ; i <= up ; i++){int t = ct1 + (i == 1);int h;if(!lead0 && i == 0) h = h0 + 1;else h = 0;x += dfs(pos - 1 , t , h , lead0 && i == 0 , limit && i == up); }if(!limit) dp[pos][ct1][h0][lead0] = x;return x;}
int work(int x){int idx = -1;while(x){d[++idx] = x % 2;x/=2;}//memset(dp , -1 , sizeof dp);return dfs(idx , 0 , 0 ,1, 1);
}void solve(){int l,r;cin>>l>>r;if(s.size()){int t = * s.lower_bound(l);if(t >= l && t <= r){cout<<t<<"\n";return;}}int ct = work(l-1);if(work(r) - ct == 0){cout<<-1<<"\n";return;}//cout<<work(68) - work(67)<<"\n";//int ll = l , rr = r;while(l < r){int mid = (l + r) >> 1;if(work(mid) - ct > 0){r = mid;}else{l = mid + 1;}}cout<<l<<"\n";s.insert(l);}   int main(){memset(dp , -1 , sizeof dp);int t;cin>>t;while(t--){solve();} 
}

考虑到各个数的状态 , 可能会存在一些共同的,因此不一定每次都要memset

每个数的limit状态不一定相同 , 把这个作为搜索的内容,其他的都可以设计再dp状态里面 

http://www.lryc.cn/news/167794.html

相关文章:

  • 透视俄乌网络战之二:Conti勒索软件集团(下)
  • 网络安全深入学习第一课——热门框架漏洞(RCE-命令执行)
  • 应用在电子体温计中的国产温度传感芯片
  • JVM 虚拟机 ----> Java 内存模型(JMM)
  • 指针-字符串替换
  • docker 网络(单机环境)
  • 14、二叉树的morris遍历等
  • BeanFactory与ApplicationContext
  • 【计算机网络】 粘包问题
  • valgrind massif 详解(内存分配释放分析)
  • 使用命令行创建一个vue项目卡住不动如何解决
  • 七天学会C语言-第一天(C语言基本语句)
  • vue项目部署,出现两个ip的原因
  • 无涯教程-JavaScript - ASIN函数
  • MYSQL的SQL优化
  • lintcode 553 · 炸弹袭击【中等 数组+bfs+模拟】
  • 第一章 计算机系统概述 八、虚拟机
  • 桶装水送水多水站送水员公众号h5开发
  • 【JavaEE】多线程(二)
  • OkHttp 根据服务器返回的的过期时间设置缓存
  • 智能远程监考方案助力企业考试化繁为简
  • 基于matlab实现的额 BP神经网络电力系统短期负荷预测未来(对比+误差)完整程序分享
  • WPF的_Expander控件
  • 【MT7628AN】IOT | MT7628AN OpenWRT开发与学习
  • 基于Matlab实现自动泊车(垂直泊车)
  • 笔试面试相关记录(4)
  • unity UDP 通信
  • 一篇解决JavaScript
  • Unity UGUI(一)基础组件
  • 【微服务】六. Nacos配置管理