文章目录

  • A. Strange Table
    • 题意
    • 解题思路
    • Code
  • B. Partial Replacement
    • 题意
    • 解题思路
    • Code
  • C. Double-ended Strings
    • 题意
    • 解题思路
    • Code
  • D. Epic Transformation
    • 题意
    • 解题思路
    • Code
  • E. Restoring the Permutation
    • 题意
    • 解题思路
    • Code
    • 最后

A. Strange Table

题意

给你一个以行为顺序的依次递增的矩阵,然后问你以列为顺序的第X个元素的值是多少

解题思路

很明显新的列数等于⌈xn⌉\left \lceil \frac{x}{n} \right \rceil⌈nx​⌉ ,新的行数等于XX%nX,注意的是,这里取模如果等于0的话,表示的是最后一行

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{ll t,n,m,x;scanf("%lld",&t);while(t--) {scanf("%lld%lld%lld",&n,&m,&x);ll hang = x % n;if(!hang) hang = n;ll lie = (long long)ceil(x*1.0/n);
//      printf("hang = %d,lie = %d\n",hang,lie);printf("%lld\n",(hang - 1)*m+lie);}}

B. Partial Replacement

题意

给你一个长度为n的字符串,然后再满足首尾*都为X的情况下的问你最少需要多少X使得所有相邻X的距离都小于k

解题思路

在保证了首尾都为X的情况下,我们贪心的选取字符的间距,然后如果此字符的后面第K个字符不是*,那么我们就往回找 *,这样就能找到最少的更换次数了

Code

#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
#define mt(x) memset(x,0,sizeof x)
#define N 2021
typedef long long ll;
char s[N];
int main()
{int t;scanf("%d",&t);while(t--){int n,k,ans=2;scanf("%d %d",&n,&k);scanf("%s",s);int p=0,q=strlen(s)-1,l=q+1;while(s[p]!='*'&&s[p])p++;while(s[q]!='*'&&s[q])q--;s[p]='x';s[q]='x';if(p!=q){int i=p+k;while(i<q){if(s[i]=='*'){//printf("i==%d\n",i);s[i]='x';i+=k;//贪心选取ans++;continue;}i--;//往回找}printf("%d\n",ans);}else puts("1");//puts(s);}return 0;
}

C. Double-ended Strings

题意

给你两个字符串,你每次能对其中一个字符串前面的字母或者后面的字母进行删除,问你最少需要几次删除操作使得两个字符串相等

解题思路

我们直接暴力匹配两个字符串的最长子串长度,然后用两个字符串的总长度减去2*相等子串的长度

Code

#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
#define mt(x) memset(x,0,sizeof x)
#define N 2021
int nt[N];
char x[N],y[N];
int main()
{int t;scanf("%d",&t);while(t--){scanf("%s",x);scanf("%s",y);int lx=strlen(x);int ly=strlen(y);int mx=0,ans=0;for(int i=0;i<lx;++i)//我们以x为主串,然后在y中找到一个子串和x子串相等{for(int j=0,p=0;i+p<lx&&j+p<ly;++j){if(x[i+p]==y[j+p])//如果x串的该位置和y串的该位置相等{p++;j--;//p保存的是当前最长相同子串的长度ans=max(p,ans);//ans存储的是最长子串的长度}else p=0;//不相等就归零}}printf("%d\n",lx-ans+ly-ans);//输出的是两字符串总长度之和减去2*最长相同子串}return 0;
}

D. Epic Transformation

题意

给你一个长度为n的数组,你每次可以选择两个值不同的数,然后将这两个数从中删掉,问你最后最少还剩多少数字

解题思路

我们先对数组排序,然后将数组一分为二,我们让第一个区间的第一个数和第二个区间的相应位置的数进行匹配,发现不同的那么剩余长度-2,这样就能得到一个最后剩余最少的结果,注意的是这里的数组长度为奇数的时候,我们直接不用管最中间的那个元素,因为它必然不能被消掉

Code

#include<bits/stdc++.h>
using namespace std;int t,n;
const int N = 200005;
int a[N];int main()
{scanf("%d",&t);while(t--) {scanf("%d",&n);for(int i = 0;i < n; ++i) {scanf("%d",&a[i]);}sort(a,a+n);int mid = (n) / 2;int ans = n;if(n%2==0) {for(int i = 0;i < mid; ++i) {if(a[i] != a[mid + i]) {ans -= 2;}}}else {for(int i = 0;i < mid; ++i) {if(a[i] != a[mid + i + 1]) {ans -= 2;}}}printf("%d\n",ans);}return 0;
}

E. Restoring the Permutation

题意

都做到这里了,题意就不说了

解题思路

对于minimal permutation :

我们先将1-n装进set里面,如果当前的q[i] > q[i-1],那么我们就要输出q[i],然后更删掉q[i]这个元素,否则我们输出set的第一个元素,然后删掉它

对于maximal permutation :

我们先将1-n装进set里面,如果当前的q[i] > q[i-1],那么我们就要输出q[i],然后更删掉q[i]这个元素,否则我们通过set的lower_bound找到小于q[i]的第一个元素

详情请看code

Code

#include<bits/stdc++.h>
using namespace std;const int N = 200005;
set<int> S;
int a[N];int main()
{int t,n;scanf("%d",&t);while(t--) {S.clear();scanf("%d",&n);for(int i = 1;i <= n; ++i) {scanf("%d",&a[i]);}for(int i = 1;i <= n; ++i) {S.insert(i);}for(int i = 1;i <= n; ++i) {if(a[i] > a[i-1]) {printf("%d ",a[i]);S.erase(a[i]);}else {auto it = S.begin();printf("%d ",*it);S.erase(it);}}puts("");for(int i = 1;i <= n; ++i) {S.insert(i);}for(int i = 1;i <= n; ++i) {if(a[i] > a[i-1]) {printf("%d ",a[i]);S.erase(a[i]);}else {auto it = S.lower_bound(a[i]);it--;printf("%d ",*it);S.erase(it);}}puts("");}return 0;
}

最后

E题没做出来,当时的想法没往STL上面靠,然后一直T on test7,有点小遗憾

Codeforces Round #710 (Div. 3)相关推荐

  1. Codeforces Round #710 (Div. 3)个人题解

    Codeforces Round #710 (Div. 3) 文章目录 [Codeforces Round #710 (Div. 3)](https://codeforces.com/contest/ ...

  2. Codeforces Round #710 (Div. 3) ABCDE 题解

    我的博客园传送门,看的方便些 A. Strange Table 签到题,算出对应行列即可. view code #include<iostream> #include<string& ...

  3. 【竞赛题解】Codeforces Round #710 (Div. 3)

    B. Partial Replacement 题意:有字符串由.和*组成,可标记其中*,首尾的*必须被标记,使被标记的*之间距离不超过k,求最少的标记量 思路:首先从首尾出发确定首尾*的位置,再由首b ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  6. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. java表或视图不存在_Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在...
  2. linux升级内核后反复重启,Ubuntu 14.04 升级内核后重启开机黑屏解决
  3. 【深度学习】何恺明经典之作—2009 CVPR Best Paper | Dark Channel Prior
  4. Node.js的环境搭建
  5. OpenCV图像旋转,指定填充背景颜色边界颜色
  6. 瑞星2008网络版序列号大全
  7. 模块单元学习笔记(日志记录模块os模块sys)
  8. 优化 .net core 应用的 dockerfile
  9. php ldap支付,php – 实现LDAP合规性
  10. 深入理解JSON对象
  11. lucky的时光助理-2017.02
  12. 【学术分享】发顶会论文,怎么就那么难?
  13. 【渝粤题库】陕西师范大学800008 综合自然地理
  14. WDM驱动和NT式驱动
  15. ai钢笔工具怎么描线_AI: 如何用钢笔工具画曲线
  16. Mac环境下简化ssh连接vlab口令实现免密登录(UNSW)
  17. 学习笔记-磁盘存储管理
  18. 2020华中科技大学计算机保研夏令营经验
  19. c语言佛像答案,课程网上考试题库试题(带答案):茶文化赏析
  20. uniapp微信小程序获取当前位置信息、经纬度转换、导航地图实现

热门文章

  1. Tensorflow 中添加正则化项
  2. 人工智能领域的会议和期刊的出版社和地址
  3. ORACLE 11.2.0.4 OCR VOTING DISK 模拟恢复场景
  4. shell变量、函数和数组以及字符串的截取
  5. 如何将composer设置为全局变量?
  6. 4种字符串匹配算法:有限自动机(中)
  7. Webservice 的安全
  8. 全民 Transformer (二): Transformer在深度学习和NLP中如何发挥作用
  9. 【Animations】使用弹簧物理学动画运动(8)
  10. DotNET:LINQ对泛型(Generic)操作和泛型方法及属性