2022.3.9
题单地址:https://codeforces.com/contest/1066

目录

  • A. Vova and Train【思维】
  • B. Heaters【贪心】
  • C. Books Queries【模拟链表】
  • D. Boxes Packing【贪心】
  • E. Binary Numbers AND Sum【思维 前缀和】

A. Vova and Train【思维】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{int t; cin>>t;while(t--){int L,v,l,r; cin>>L>>v>>l>>r;int cnt=L/v;int cnt1=r/v;int cnt2=(l-1)/v;cout<<max(0,cnt-(cnt1-cnt2))<<endl;}return 0;
}

B. Heaters【贪心】


题目理解错了,导致一直wa。题目的意思是1的点可以点亮。点亮最少的1,覆盖整个区间。
我一开始理解错了以为是1的点就是热的,可以不用管,其实不然。
贪心思路: 尽可能的向右找1,右边找不到,左边找。都找不到则无解。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,r;
int main(void)
{cin>>n>>r;for(int i=1;i<=n;i++) cin>>a[i];int cnt=0;for(int i=1;i<=n;i++){int pos=-1;for(int j=i;j<=i+r-1&&j<=n;j++) if(a[j]) pos=j;//右边找if(pos!=-1){cnt++,i=pos+r-1;continue;}pos=-1;for(int j=max(1,i-r+1);j<=i;j++) if(a[j]) pos=j;//左边找if(pos==-1) {puts("-1");return 0;}cnt++,i=pos+r-1;if(i>=n) break;}cout<<cnt;return 0;
}

C. Books Queries【模拟链表】

#include<bits/stdc++.h>
using namespace std;
int n,l=0,r=1;
map<int,int>mp;
int main(void)
{cin>>n;while(n--){char op;int id;cin>>op>>id;if(op=='L') mp[id]=l--;else if(op=='R') mp[id]=r++;else{int len1=mp[id]-(l+1);int len2=r-1-mp[id];cout<<min(len1,len2)<<endl;}}return 0;
}

D. Boxes Packing【贪心】


题目的意思是说,我们要将最后的一次全部拿走。那么倒着来就行了。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*4+10;
int a[N],n,m,k;
int main(void)
{cin>>n>>m>>k;for(int i=0;i<n;i++) scanf("%d",&a[i]);int sum=0,cnt=1,ans=0;for(int i=n-1;i>=0;i--){if(a[i]>k) break;if(sum+a[i]>k) {if(cnt<m){sum=a[i],cnt++,ans++;}else break;}else sum+=a[i],ans++;if(cnt>m) break;}cout<<ans;return 0;
}

E. Binary Numbers AND Sum【思维 前缀和】


对于每一个1计算前面有多少个1。即只要计算贡献就好了。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int mod=998244353;
const int N=1e5*3+10;
int n,m,s[N];
string a,b;
int main(void)
{cin>>n>>m;cin>>a>>b;reverse(a.begin(),a.end());reverse(b.begin(),b.end());a="0"+a,b="0"+b;for(int i=m;i>=1;i--){s[i]=s[i+1];if(b[i]=='1') s[i]++;}LL sum=0;for(LL i=1,j=1;i<=n;i++,j=j*2%mod)if(a[i]=='1') sum=(sum+j*s[i])%mod;cout<<sum;return 0;
}

Codeforces Round #515 (Div. 3)【未完结】相关推荐

  1. Codeforces Round #486 (Div. 3)【完结】

    2022.3.2 题单地址:https://codeforces.com/contest/988 目录 A. Diverse Team[模拟] B. Substrings Sort[暴力枚举] C. ...

  2. Codeforces Round #498 (Div. 3)【完结】

    2022.3.6 题单地址:https://codeforces.com/contest/1006 目录 A. Adjacent Replacements B. Polycarp's Practice ...

  3. Codeforces Round #490 (Div. 3)【完结】

    2022.3.3 题单地址:https://codeforces.com/contest/999 目录 A. Mishka and Contest[模拟] B. Reversing Encryptio ...

  4. Codeforces Round #481 (Div. 3)【完结】

    2022.3.1 题目地址:https://codeforces.com/contest/978 目录 A. Remove Duplicates[模拟] B. File Name[贪心 / 双指针] ...

  5. Codeforces Round #479 (Div. 3)【完结】

    2022.2.28 开始复盘div3 题目链接:https://codeforces.com/contest/977 目录 A. Wrong Subtraction[签到模拟题] B. Two-gra ...

  6. Codeforces Round #108 (Div. 2)

    Codeforces Round #108 (Div. 2) C. Pocket Book 题意 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\). 每次选 ...

  7. Codeforces Round #715 (Div. 1) C. Complete the MST 补图 + 思维 + 最小生成树

    传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm个边的图,mmm条边是给定的,要求你给未给定的边赋值一个边权,使得所有边权异或和为000,求所有满足这种情况的图中最小生成树边权和最小的 ...

  8. CodeCraft-21 and Codeforces Round #711 (Div. 2)

    CodeCraft-21 and Codeforces Round #711 (Div. 2) 题号 题目 考点 A GCD Sum 签到,模拟 B Box Fitting 贪心 C Planar R ...

  9. Codeforces Round #700 (Div. 2)A~D2解题报告

    Codeforces Round #700 (Div. 2)A~D2解题报告 A Yet Another String Game 原题链接 http://codeforces.com/contest/ ...

最新文章

  1. 每天2小时,吃透 985博士总结的这份保姆级TensorFlow + PyTorch笔记(20G高清/PPT/代码)...
  2. 每天工作四小时的程序员-转
  3. 使用php与mysql构建我们的网站
  4. 文巾解题 1418. 点菜展示表
  5. P3911 最小公倍数之和
  6. 【好文链接】什么是光流
  7. python 列表和字段的相关函数
  8. ubuntu18设置屏幕旋转_无线电对讲机,常用电台上中继台设置
  9. matlab 不同函数间传递结构体数据_VC与Matlab混合编程及复杂数据:结构体传递
  10. Android Studio 修改app名字和图标
  11. 【Mybatis】TKMybatis 介绍和使用
  12. win10设置透明任务栏
  13. 解决网页微信扫码登录报40163
  14. 关于我的大学ACM江湖
  15. JavaScrpit+Html实现日期时间启动、停止操作(应用场景:计时器、秒表)
  16. C++ 直接计算多项式的值
  17. 高分七号(GF-7)
  18. R语言学习记录:聚类分析的R实现
  19. Excel出现“向程序发送命令时出现问题”错误
  20. 易飞ERP与PDM集成方法

热门文章

  1. OS_CORE.C(1)
  2. JPEG图片扩展信息读取与改动
  3. 学习笔记57_WCF基础
  4. iOS 设置状态栏样式
  5. Light OJ 1373 Strongly Connected Chemicals 二分匹配最大独立集
  6. 使用SecureCRT的SFTP在WINDOWS与LINUX之间传输文件(转载)
  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统--任务调度系统解析
  8. You have new mail
  9. dos窗口显示中文的一种方法
  10. STM32f103C8T6 bootloader设计