1.CF1263D Secret Passwords


并查集,每个字符串跟它的首字母连边,最终输出联通块数量

#include<bits/stdc++.h>
using namespace std;
int t,n,m;
int vis[200005];
string a[200005];
int f[200005];
int find(int x){if(x==f[x])return x;return f[x]=find(f[x]);
}
void hb(int x,int y){int fx=find(x);int fy=find(y);f[fy]=fx;
}
signed main(){cin>>t;for(int i=1;i<=t;i++){cin>>a[i];}for(int i=1;i<=50;i++){f[i]=i;}for(int i=1;i<=t;i++){int len=a[i].length();if(len==1)continue;int x=a[i][0]-'a'+1;for(int j=1;j<len;j++){int y=a[i][j]-'a'+1;if(find(x)!=find(y))hb(x,y);}}int ans=0;for(int i=1;i<=t;i++){int x=a[i][0]-'a'+1;int xx=find(x);if(vis[xx]==0){vis[xx]++;ans++;}}cout<<ans;return 0;
}

2.CF1217B Zmei Gorynich


打可爱的小恐龙
记录一刀maxx 最大伤害和 hao 最大(伤害-回血)
总血量减去一刀最大除以 hao判断余数就ok了

#include<bits/stdc++.h>
using namespace std;
void shit();
int t,x,n,m;
int main(){cin>>t;while(t--){cin>>n>>m;int x,y;int hao=0;int maxx=0;for(int i=1;i<=n;i++){cin>>x>>y;hao=max(hao,x-y);maxx=max(x,maxx);}if(maxx>=m){printf("1\n");continue;}else{if(hao<=0){printf("-1\n");}else{int tt=m-maxx;int ans=0;if(tt%hao==0){ans+=tt/hao;}else{ans+=(tt/hao)+1;}printf("%d\n",ans+1);}}}return 0;
}

3.CF1234C Pipes



1和2一样 3456一样
用二维string记录上面的管子和下面的管子
如果管子不是1or2就x=!x ,也就是换到另外一行,如果换行之后的管子是1or2就直接break,因为不可能能跟下一根连接,如果是3456就不需要管这一行了直接y++到下一次循环就ok
最终判断是否能到达1,n

#include<bits/stdc++.h>
using namespace std;
int q,n;
string a[2];
int main(){cin>>q;while(q--){cin>>n;cin>>a[0];cin>>a[1];int x=0,y=0;for(int i=0;i<n;i++){if(a[x][y]>'2'){x=!x;if(a[x][y]<='2')break;}y++;}if(x==1&&y==n)printf("YES\n");else printf("NO\n");}return 0;
}

4.CF1209C Paint the Digits


把原字符串复制一份,对原串排序,遍历一遍,跟排序后原串相等就标记为1,pos后移
再遍历一遍,最终判断pos的是否等于n,不等于就输出-,等于就输出标记好的串

#include<bits/stdc++.h>
using namespace std;
string a,b,s;
int n,t;
int main(){cin>>t;while(t--){cin>>n;cin>>s;a=s,b=s;sort(s.begin(),s.end());int id=0;for(int i=0;i<n;i++){if(s[id]==a[i]){id++;b[i]='1';}}for(int i=0;i<n;i++){if(s[id]==a[i]){id++;b[i]='2';}}if(id!=n)b="-";cout<<b<<endl;}return 0;
}

5.CF1201B Zero Array


一开始把这题想复杂了,其实只需要判断最大数是否小于sum/2并且sum为偶数就可以了

#include<bits/stdc++.h>
using namespace std;
#define int long long
void shit();
int n,x;
signed main(){cin>>n;int sum=0,s=0;for(int i=1;i<=n;i++){cin>>x;s=max(s,x);sum+=x;}if(sum%2==0&&s<=sum/2)printf("YES\n");else printf("NO\n");return 0;
}

6.CF1196C Robot Breakout



给出每个机器人的上下左右能不能走,开4个坐标记录最大x,y,最小x,y
如果最小的小于等于最大就随便输出一个坐标,否则不可

#include<bits/stdc++.h>
using namespace std;
string a,b,s;
int n,t;
int main(){cin>>t;while(t--){int mx=1e5,my=1e5;int minx=-1e5,miny=-1e5;cin>>n;int x,y;int f1,f2,f3,f4;for(int i=1;i<=n;i++){cin>>x>>y;cin>>f1>>f2>>f3>>f4;if(!f1)minx=max(minx,x);if(!f2)my=min(my,y);if(!f3)mx=min(mx,x);if(!f4)miny=max(miny,y);}if(minx<=mx&&miny<=my)printf("1 %d %d\n",minx,miny);else printf("0\n");}return 0;
}

7.CF1084C The Fair Nut and String


思路是递推算贡献,如果当前为a就ans+=now+1,为b的话就now=ans,now是记录截止到当前像aaabaaab这样的串的长度,其实就是相当于每个b两边a的数量相乘,最后不要忘了当前为a时自己有一个单独的贡献

#include<bits/stdc++.h>
using namespace std;
string s;
long long ans;
const int mod=1e9+7;
int main(){cin>>s;int now=0;for(int i=0;i<s.length();i++){if(s[i]=='a')ans=(ans+now+1)%mod;else if(s[i]=='b')now=ans%mod;}cout<<ans;return 0;
}

刷题记录 CF每日一题打卡 2020.6月7-6月13相关推荐

  1. 洛谷刷题记录(入门第一题)

    大家好,先自我介绍一下.我是sjksndnfkwks,目前大一学生,数据科学学院,从今天也就是2022年12月26日开始记录自己洛谷刷题的过程.目前为止我接触过java.python两种编程语言,所以 ...

  2. [每日一题]0:每日一题汇总

    每日一题 锻炼编程能力,每日尽量至少更新一道算法编程题,博客内主要更新学习C/C++.以及Linux的相关知识点,希望在记录学习过程的同时也能方便遇到相同问题的人,方便回顾复习,也希望能够与大家一起交 ...

  3. [刷题记录] luogu网络流24题 及 网络流心得体会 及 经典模型不定期更新

    文章目录 信息汇总表格 飞行员配对方案问题 分配问题 运输问题 数字梯形问题 最小路径覆盖问题 魔术球问题 圆桌问题 试题库问题 深海机器人问题 航空路线问题 火星探险问题 太空飞行计划问题 方格取数 ...

  4. 写题记录 cf G. Minimal Coverage 难度2200

    题意:给了n个数,每次可以向左或向右移动a[i]步,问最后经过的区间最小是多少 考点:思维,dp 题解:对每次移动可以发现它的移动方向与后面的移动有关,考虑动态规划,首先考虑暴力转移,前i个数当前左端 ...

  5. 【做题记录】Codeforces做题记录

    最近决定写一些CF Div.1的题,练习一下速度和代码能力. 暂定从中考后的Codeforces Round #572开始. 大部分比较简单的题直接把题解写在这里,不单独开文章了. Codeforce ...

  6. 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列

    文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...

  7. [做题记录]AtCoder AGC做题记录

    最近一直在做BZOJ的题,思维含量太低,大脑已经生锈 做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 27 总共题数: 204 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC ...

  8. 【做题记录】DP 杂题

    P2577 [ZJOI2004]午餐 $\texttt{solution}$ 想到贪心: 吃饭慢的先打饭节约时间, 所以先将人按吃饭时间从大到小排序. 状态: \(f[i][j]\) 表示前 \(i\ ...

  9. 365天挑战LeetCode1000题——Day 012 每日一题

    文章目录 前言 1. [寻找右区间](https://leetcode.cn/problems/find-right-interval/) 1.1 二分查找 总结 前言 今天还是一题,但是重新学习了快 ...

  10. 【做题记录】图论杂题

    P1268 树的重量 $\texttt{solution}$ 算法:(贪心)\(+\) 找规律 当 \(n=2\) 时,显然答案就是 \(dis(1,2)\) . 当 \(n=3\) 时,答案: \[ ...

最新文章

  1. linux dns 添加mx,linux dns配置
  2. boost::mp11::mp_pop_back相关用法的测试程序
  3. 上海市新能源汽车数据平台引入阿里云Lindorm数据库,成本下降20%
  4. 超链接禁用_在Microsoft Word 2003和2007中禁用自动超链接
  5. MATLAB调用C/C++函数的方法
  6. 避坑!使用 Kubernetes 最易犯的 10 个错误
  7. 3011-基于二叉树的表达式求值(C++,附详细思路)
  8. c语言不用switch做计算器,求助这个题目~不用switch语句用多重if 或者嵌套if的做法...
  9. 塔望3W消费战略全案|绿力冬瓜茶:老品牌的升级保卫战
  10. 汇编语言(Assembly Language)简介
  11. 想不到 HR 都在 GitHub 捞人!五位开源大牛分享成长经历(文末福利)
  12. 小程序完整demo推荐:东航旅行;预订酒店,机票(适用1221)
  13. 为什么需要序列化总结
  14. AHB协议(2/2)
  15. LABVIEW绘制等高线
  16. 项目体系架构设计——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(四)
  17. amt是什么意思_变速箱中的at、mt和amt是什么意思啊?
  18. 武汉大学计算机学院卓越工程师班,大学里的三大重点班:实验班、基地班、卓越工程师班...
  19. java和c++复试面试题
  20. Swift 日历添加事件 删除事件

热门文章

  1. 判断 失效_复合材料渐进失效Hashin模型及参数详解
  2. 线材下料优化python算法_深度学习中的优化算法(Optimizer)理解与python实现
  3. 小知识--DOS命令2
  4. oracle存储过程备份,Oracle存储过程(二)
  5. python turtle原点位置_python中turtle库中setworldcoordinates(坐标系的移动)
  6. python 封装_Python面向对象之封装
  7. nyoj Splits the string 749
  8. 【转载好文】对char *和char []做形参的深入理解+const char*/char const*/char *const的解析
  9. AutoViz:用一行代码自动可视化任何大小的任何数据集
  10. 《C++(三)--多线程方法总结》