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

CF每日3题(1500-1700)

做题好慢 将近半小时一道…
但是经验+3

  • 1482B 带模的等差数列
  • 1932E 高精度,一个数一个数地计算有点难,可以看数位上的贡献
  • 1528B dp分类讨论找出规律

1482B 思维 找规律 1500

在这里插入图片描述
ai=(ai−1+c)modma_i=(a_{i-1}+c) \mod mai=(ai1+c)modm是在模m意义下的等差数列

  • 当m特别大,给的a本身就是等差数列,差是c
  • ai+c>m>amax,a_i+c>m>a_{max},ai+c>m>amax,所以a的差除了正的c的也会有c-m
    所以讨论数组中的差判断就好
void solve(){int n;cin>>n;int mx=0;vector<int>a(n+1);set<int>s;forr(i,1,n){cin>>a[i];mx=max(a[i],mx);if(i>1){s.insert(a[i]-a[i-1]);}}if(s.size()==1||s.size()==0)return cout<<0<<endl,void();if(s.size()>2)return cout<<-1<<endl,void();int ne,po;ne=0,po=0;for(auto i:s){ne=min(ne,i);po=max(po,i);}if(ne<0&&po>0&&po-ne>mx){cout<<po-ne<<' '<<po<<endl;}else cout<<-1<<endl;}

1932E 高精度 前缀和优化 思维 1600

在这里插入图片描述

题意:每个数的改变需要1s,求所给数倒计时到0改变的用时
如23,个位数的变化0→十位=110s0→十位=210s0→十位=23s30 \rightarrow^{10s}_{十位=1}0\rightarrow^{10s}_{十位=2}0\rightarrow^{3s}_{十位=2}30十位=110s0十位=210s0十位=23s3
所以每一位数变化的时间就是本位数和更高位组成的十进制数

/*
eg.12345
12345123412312
+   1
*/
void solve(){int n;cin>>n;vector<int>a(n+5,0),sn(n+5,0);string s;cin>>s;forr(i,1,n){sn[i]=s[n-i]-'0';sn[i]+=sn[i-1];//一个一个加会超时8e10 前缀和优化}forr(i,1,n){a[i]+=sn[n]-sn[i-1];// forr(j,i,n){//     a[id++]+=sn[j];// }}int c=0;forr(i,1,n){a[i]+=c;c=a[i]/10;a[i]%=10;}int bg=(c==0?n:n+1),fg=0;a[n+1]+=c;reforr(i,1,bg){if(!fg&&!a[i])continue;fg=1;cout<<a[i];}cout<<endl;
}

1528B dp 1700

dp真难啊…
在这里插入图片描述在这里插入图片描述

大佬题解
省流复述一下:
题意:2n个点两两相连,连线要求两两长度相等或相互包含
两个线如果不包含,相互交叉,就得相等
先考虑点1配对到点x形成一条线

  • x<=nx<=nx<=n,线内有x−2(<n)x-2(<n)x2(<n)个点,线外有n−x(≥n)n-x(\geq n)nx(n)个,为了后面的点都能配对,线内所有的点都得连到线外,形成长度相等的线,只有不包含的情况。
    线内的配对完形成的线组总共长度是x+x−2=2x−2x+x-2=2x-2x+x2=2x2,n中可以有多个这样的组,x-1需要整除n
    整除n的地方会有1贡献,设此贡献为d[n]d[n]d[n]
  • x>nx>nx>n,有包含的情况,文章中枚举分析的很好理解,直接粘了
    在这里插入图片描述
    dp[i]=∑j=0i−1dp[j](前缀和)+d[i]dp[i]=\sum\limits_{j=0}^{i-1}dp[j](前缀和)+d[i]dp[i]=j=0i1dp[j](前缀和)+d[i]
void solve(){int n;cin>>n;vector<int>dp(n+1,0),d(n+1,0);forr(i,1,n){//找1~n每个数的因子for(int j=i;j<=n;j+=i)d[j]++;}dp[1]=1;int sum=dp[1];forr(i,2,n){dp[i]=(sum+d[i])%mod;//x>n的情况+x<=n的情况sum=(sum+dp[i])%mod;//更新前缀和}cout<<dp[n]<<endl;
}
http://www.lryc.cn/news/623286.html

相关文章:

  • P2169 正则表达式
  • w嵌入式分享合集66
  • 【Bluedroid】A2DP控制通道UIPC机制深度解析(btif_a2dp_control_init)
  • Java8~Java21重要新特性
  • JAVA面试汇总(四)JVM(一)
  • 028 动静态库 —— 动态库
  • duiLib 实现鼠标拖动标题栏时,窗口跟着拖动
  • Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
  • 分享一个Oracle表空间自动扩容与清理脚本
  • CPP多线程3:async和future、promise
  • MATLAB基础训练实验
  • 超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
  • 深度剖析Redisson分布式锁项目实战
  • 【数据分享】大清河(大庆河)流域上游土地利用
  • AutoDL使用学习
  • K8s核心组件全解析
  • 服务器配置开机自启动服务
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • [CSP-J2020] 方格取数
  • Vue组件生命周期钩子:深入理解组件的生命周期阶段
  • Vue 3.5+ Teleport defer 属性详解:解决组件渲染顺序问题的终极方案
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
  • ESP32-S3_ES8311音频输出使用
  • CSS 核心知识点全解析:从基础到实战应用
  • 探索粒子世界:从基础理论到前沿应用与未来展望
  • 主从复制+哨兵
  • 【论文阅读】Multimodal Graph Contrastive Learning for Multimedia-based Recommendation
  • List容器:特性与操作使用指南
  • 《设计模式》代理模式
  • Java 9 新特性及具体应用