前言

比赛链接:https://codeforces.com/contest/1650

A. Deletions of Two Adjacent Letters (签到+思维)

题意

给你一个字符串,我们有一个操作(可以操作无限次),每次能删除两个相邻元素,问你删到最后能不能只剩下字符 C

思路

我们将 S字符串中所有 c 的位置存储在一个 vector中,然后遍历这个vector如果发现至少有一个位置是一个奇数那么肯定能剩下 C ,否则就是不可能存在

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fint dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
//----------------自定义部分----------------
int t,n,m,q,a[N];
void slove(){string s;char c;cin>>s>>c;vector<int> v;int n = s.size();for(int i = 0;i < n; ++i) if(s[i] == c) v.push_back(i+1);bool fg = false;for(auto it: v)if(it % 2 == 1) fg = true;if(fg) cout<<"YES"<<endl;else cout<<"NO"<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){slove();}return 0;
}

B. DIV + MOD(数学+构造)

题意

定义 fa(x)=x/a+xmodaf_a{(x)} = x/a + x \ mod \ afa​(x)=x/a+x mod a ,其中 x/ax/ax/a 向下取整,然后给定 lll 和 rrr 区间范围,问你在这个区间范围的最大 fa(x)f_a(x)fa​(x)是多少,其中 aaa 的值给定

思路

注意这里当 a=1a=1a=1 的时候很特殊,直接返回 rrr 就好了否则我们是想尽可能凑出一个模后为 a−1a-1a−1 的数,如果我们发现凑不出来,说明我们的这个 [l,r][l,r][l,r] 区间就是小于 aaa 的,那么就输出 fa(r)f_a(r)fa​(r) 就好啦

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fint dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
//----------------自定义部分----------------
ll t;
void slove(){ll l,r,a;cin>>l>>r>>a;if(a == 1) {cout<<r<<endl;return;}ll p = (r/a) * a - 1LL;if(p < l) p = l;ll ans = max(p/a + p % a,r/a+r%a);cout<<ans<<endl;}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){slove();}return 0;
}

C. Weight of the System of Nested Segments(贪心)

题意

思路

我们通过观察发现,对于这个重叠线段来说,我们只需要从权重从小到大考虑即可,找到了权值 www 最小的 2×n2\times n2×n 个点,我们只需要对这些点再进行一个位置排序就好啦

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fint dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
//----------------自定义部分----------------
ll t,n,m,q,a[N];struct Node{ll w,loc,idx;
};bool cmp1(Node a,Node b){return a.w < b.w;
}
bool cmp2(Node a,Node b){return a.loc < b.loc;
}Node b[N],c[N];
void slove(){cin>>n>>m;for(ll i = 1;i <= m; ++i) {cin>>b[i].loc>>b[i].w;b[i].idx = i;}sort(b+1,b+1+m,cmp1);ll l = 2 * n;ll ans = 0;for(ll i = 1;i <= l; ++i) {c[i] = b[i];ans += b[i].w;}sort(c+1,c+1+l,cmp2);cout<<ans<<endl;for(int i = 1;i <= n; ++i) {cout<<min(c[i].idx,c[l - i + 1].idx)<<" "<<max(c[i].idx,c[l - i + 1].idx)<<endl;}cout<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){slove();}return 0;
}

D. Twist the Permutation(模拟)

题意

思路

我们从结果倒推,因为我们发现后面归位后不影响前面的序列进行循环操作,那么我们首先要将 nnn 归位到第n位,我们会发现我们的循环操作变成了向左循环,假设我们用 b[i]b[i]b[i] 记录当前的第 iii 个元素的位置,那么我们当前归位的这一位 loclocloc 应该向左循环 b[loc]%locb[loc] \% locb[loc]%loc 次,并且,小于 loclocloc 的所有数都需要向左循环 b[loc]%locb[loc] \% locb[loc]%loc 次,那么我们的操作就是模拟啦,复杂度 O(N2)O(N^2)O(N2)

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fint dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
//----------------自定义部分----------------
int t,n,m,q,a[N],b[N],ans[N];
void slove(){cin>>n;for(int i = 1;i <= n; ++i) {cin>>a[i];b[a[i]] = i;}for(int i = n ;i >= 1; --i) {ans[i] = b[i] % i;for(int j = 1;j <= n; ++j) {b[j] = (b[j]-ans[i] + i) % i;if(b[j] == 0) b[j]  = i;}}for(int i = 1;i <= n; ++i) cout<<ans[i]<<" \n"[i == n];}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){slove();}return 0;
}
/*
1
3
3 1 2
*/

E. Rescheduling the Exam()

明天起来写,先睡了

题意

思路

代码

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

  1. Codeforces Round #776 (Div. 3) A B C D E

    Codeforces Round #776 (Div. 3) A B C D E A. Deletions of Two Adjacent Letters Tip: Implementation.St ...

  2. Codeforces Round #776 (Div. 3)-D. Twist the Permutation

    原题链接:https://codeforces.com/contest/1650/problem/D 解题思路: 仔细审题,会发现对第i个数字做的操作不会影响到后面的i+1-等数字.即可以反过来从最后 ...

  3. Codeforces Round #506 (Div. 3)

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

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

  5. 构造 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 的例子可以 ...

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

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

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

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

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

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

  9. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

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

  10. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. 最好用的修改docker镜像源的方式
  2. linux内核之accept实现
  3. C++ leetcode 26. 删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
  4. Git 的工作区、暂存区、版本库—— Git 学习笔记 15
  5. flask 学习笔记 mvc ,sqlalchemy(insert,update)
  6. Orleans解决并发之痛(三):集群
  7. 将Maven与Ivy集成
  8. MySQL吉连_Learn Jdbc : Java, Jdbc, Odbc
  9. linux系统上传下载命令rz和sz
  10. leetcode - 4. Median of Two Sorted Arrays
  11. 自己写Tiny6410的Bootloader总结!
  12. .net core平台使用遇到的坑
  13. Frame buffer分析 - fbmem.c【转】
  14. unity 灯光阴影
  15. 梯度下降算法(GD)—收敛速率证明
  16. 无人机——凤凰模拟器篇(五)遥控器的配置教程
  17. Friendster,linkedin,orkut,liring对SNS的求索 1
  18. 做一个略调皮的个人博客--菜单篇
  19. 理解.exe文件的结构原理即运行过程
  20. mencoder MPlayer 参数详细

热门文章

  1. apkg格式怎么打开_天正软件如何导成CAD识别格式
  2. W3school和W3Cschool的区别
  3. linux中批量替换文本中字符串
  4. JAVASE学习总结(20):字符串相关的类--StringBuffer
  5. 汉王考勤管理软件mysql数据库配置_求汉王考勤软件数据库表结构
  6. 微信小程序图标变形、微信小程序放大镜图标、图片设置为圆形——微信小程序(1)
  7. 数字图像处理 色差计算
  8. 学校图书馆管理系统/图书管理系统的设计与实现
  9. linux acpidtd 进程,MaciASL提取的原版的DTDS编译提示有错误,大牛帮忙看下吧。
  10. 详解sqlserver 执行计划