2022.3.5
题目地址:https://codeforces.com/contest/1005

目录

  • A. Tanya and Stairways【找规律】
  • B. Delete from the Left【模拟】
  • C. Summarize to the Power of Two【哈希表】
  • D. Polycarp and Div 3【DP】
  • E1. Median on Segments (Permutations Edition)【思维】

A. Tanya and Stairways【找规律】

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,a[N];
vector<int>ve;
int main(void)
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++)if(a[i]>=a[i+1]) ve.push_back(a[i]);cout<<ve.size()<<endl;for(int i=0;i<ve.size();i++) cout<<ve[i]<<" ";return 0;
}

B. Delete from the Left【模拟】


因为只能从前往后删,故就是求最长的相同的后缀

#include<bits/stdc++.h>
using namespace std;
int main(void)
{string a,b; cin>>a>>b;int cnt =0;for(int i=a.size()-1,j=b.size()-1;i>=0;i--){if(a[i]==b[j]) j--,cnt++;else break;}cout<<a.size()-cnt+b.size()-cnt;
}

C. Summarize to the Power of Two【哈希表】


就是贪心,对于一个数枚举所有的可以和它匹配的数,然后记录。
注意标记,避免重复计算。

#include<bits/stdc++.h>
using namespace std;
map<int,int>mp,st;
int s[35],n,x;
int main(void)
{cin>>n;for(int i=0;i<n;i++) cin>>x,mp[x]++;for(int i=1,j=1;i<=31;i++,j*=2) s[i]=j;int sum=0;for(auto i=mp.begin();i!=mp.end();i++){x=i->first;for(int j=1;j<=31;j++){if(s[j]>x){int x1=x,x2=s[j]-x;if(mp.count(x1)==0||mp.count(x2)==0) continue;//俩数有一个不存在if(x1==x2)//相等{if(st[x1]) continue;//计算过了if(mp[x1]<2) continue;//个数小于2sum+=mp[x2];st[x1]=1;}else{if(!st[x1]) sum+=mp[x1];//加过了if(!st[x2]) sum+=mp[x2];//加过了st[x1]=1,st[x2]=1;//记录已经选过了}}}}cout<<n-sum<<endl;return 0;
}

D. Polycarp and Div 3【DP】


dp[i] 表示前i个字符切割后 最多的可以被三整除的数字个数

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int n,dp[N],s[N];
int main(void)
{string a; cin>>a;n=a.size();a="0"+a;for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i]-'0';for(int i=1;i<=n;i++){for(int j=1;j<=min(i,100);j++)//取后面的100个状态来转移  其实取10个就行了{int sum=s[i]-s[i-j];if(sum%3) dp[i]=max(dp[i],dp[i-j]);else dp[i]=max(dp[i],dp[i-j]+1);}}cout<<dp[n];return 0;
}

E1. Median on Segments (Permutations Edition)【思维】

  • 如果区间长度是偶数:则区间内小于等于m的数量等于大于m的数量
  • 如果区间长度是奇数:则区间内小于等于m的数量等于大于m的数量+1

区间内小于等于m的数量为a,区间内大于m的数量为b,故:

  • b-a=0
  • b-a=-1
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
typedef long long int LL;
map<int,int>mp;
LL n,m,ans,a[N];
int main(void)
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];int pos,cnt=0;for(int i=1;i<=n;i++) if(a[i]==m) pos=i;for(int i=pos;i>=1;i--){if(a[i]>m) cnt++;else if(a[i]<m)cnt--;mp[cnt]++;}cnt=0;//cnt表示的是大于m的数的个数和小于m的数的个数的差值for(int i=pos;i<=n;i++){if(a[i]>m) cnt++;else if(a[i]<m) cnt--;ans+=mp[-cnt];ans+=mp[-cnt+1];}cout<<ans;return 0;
}

Codeforces Round #496 (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 #496 (Div. 3 ) E1. Median on Segments (Permutations Edition)(中位数计数)

    E1. Median on Segments (Permutations Edition) time limit per test 3 seconds memory limit per test 25 ...

  7. Codeforces Round #108 (Div. 2)

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

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

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

  9. 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 ...

最新文章

  1. 欧拉角和旋转矩阵相互转换
  2. 联想e480一键恢复小孔_联想IdeaPad 340C评测:3000必入的15寸轻薄本
  3. ABAP程序中的七大危险漏洞
  4. 极致的线上产品设计与终极数据分析工具,两者缺一不可(下)
  5. ADI官方源码快速搭建demo工程验证设计的正确性
  6. 详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)
  7. Android官方培训课程中文版(v0.9.5)
  8. mysql having关键字可以对group by后的结果再进行筛选
  9. Chrome 扩展工具及命令
  10. ubuntu 发布asp.net 站点(.net core)
  11. 热更新和热修复 个人小结
  12. 海南工会云会员认证_“网上工会”大普惠全面升级 全体会员共享生活大福利...
  13. mysql 5.6 默认密码_mysql5.6配置及修改密码
  14. Vue 实例常用的属性和方法
  15. Excel取消合并单元格后自动填写内容
  16. inux内核态文件操作filp_open/filp_close/vfs_read/vfs_write
  17. 写字机结构---coreXY结构
  18. 默哀日、灾难日,纪念日,哀悼日等网站都变成黑白色
  19. 实时时钟 (RTC)
  20. 英孚教育APP应用获全球杰出商业银奖

热门文章

  1. Postman:Postman简介、安装、入门使用方法详细攻略
  2. Binary Tree Level Order Traversal
  3. iphone 软键盘
  4. IE6 / IE7 / Firefox 的margin问题解决办法
  5. 老虎Sitemap生成器 0.2
  6. 为什么linux的TTY登录程序getty/agetty一般都会设置一个-L的option?
  7. GetSafeHwnd()函数
  8. IAR 使用小技巧--持续更新
  9. python 异步编程——asyncio
  10. 深度学习(神经网络) —— BP神经网络原理推导及python实现