目录

A. Wonderful Permutation

题意:

思路:

code:

B. Woeful Permutation

题意:

思路:

code:

C. Sort Zero

题意:

思路:

code:

垃圾话(不建议观看会影响心情):


题意:

问你若想使前k个数字的和是能得到的最小的所需要的交换次数.

思路:

sort下找到目标序列, 对比差距即可.

换了个更简洁的方法, 前k个大于k证明需要和后面的交换, cnt++.

code:

/***    author:  CurleyD*    created: 08.13.2022 22:37:16
**/
#include <bits/stdc++.h>
using namespace std;
#define fastIO ios::sync_with_stdio(false); cin.tie(nullptr);
#define debug cout<<"\nStop Here\n"; return;
#define per(i,a,n) for(int i=n;i>=a;i--)
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define eb emplace_back
#define pb push_back
#define se second
#define fi first
#define endl '\n'
typedef pair<int,int> PII;
typedef long long ll;
typedef double db;
const int INF = 0x3f3f3f3f;
const ll MOD = 1000000007;
const db eps = 1e-6;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
//#define int long long
//headint T = 1, n, m, k;int a[105];void solve() {cin >> n >> k;int cnt = 0;for (int i = 1; i <= n; i++) {cin >> a[i];if (a[i] > k && i <= k)cnt ++;}    cout << cnt << endl;
}signed main() {fastIOcin >> T;while(T--) {solve();}return 0;
}

B. Woeful Permutation

题意:

构造排列p_1, p_2, ... p_n, 使得lcm(1,p_1) + lcm(2, p_2) + ... + lcm(n, p_n) 最大.

思路:

一个性质相邻两个数字一定互质, 因此可得gcd(a_i, a_i+1)是最大的, 进而lcm最大.

区分奇偶处理开头那个1即可.

code:

/***    author:  CurleyD*    created: 08.13.2022 22:43:20
**/
#include <bits/stdc++.h>
using namespace std;
#define fastIO ios::sync_with_stdio(false); cin.tie(nullptr);
#define debug cout<<"\nStop Here\n"; return;
#define per(i,a,n) for(int i=n;i>=a;i--)
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define eb emplace_back
#define pb push_back
#define se second
#define fi first
#define endl '\n'
typedef pair<int,int> PII;
typedef long long ll;
typedef double db;
const int INF = 0x3f3f3f3f;
const ll MOD = 1000000007;
const db eps = 1e-6;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
//#define int long long
//headconst int N = 1e5 + 10;
int a[N];int T = 1, n, m;
void solve() {cin >> n;for (int i = 1; i <= n; i++) {a[i] = i;}if (n & 1) {for (int i = 2; i <= n; i += 2)swap(a[i], a[i + 1]);} else {for (int i = 1; i <= n; i += 2)swap(a[i], a[i + 1]);}for (int i = 1; i <= n; i++) {cout << a[i] << " ";}cout << "\n";
}signed main() {fastIOcin >> T;while(T--) {solve();}return 0;
}

C. Sort Zero

题意:

每次可以选定一个x让序列中所有的a_i=x对应的a_i=0.

问你最少需要多少次让序列成为最长非降子序列.

思路:

1.逆序从n向前找 找到不满足题目要求的第一个位置(从右开始)记为pos.

2.从左向右, 1~pos, 如果没出现过cnt++, vis[a[i]] = 1. 相当于在序列中把这个都删了

3.上述操作可能在删除某个数字后会对右面 pos + 1 ~ n 原有的上升情况构成干扰.如下

2 4 1 2 3 -> 0 0 1 0 3 需要删除掉1

因此我们还需要从n向前扫到pos + 1, 排除这种干扰!

code:

/***    author:  CurleyD*    created: 08.13.2022 23:06:21
**/
#include <bits/stdc++.h>
using namespace std;
#define fastIO ios::sync_with_stdio(false); cin.tie(nullptr);
#define debug cout<<"\nStop Here\n"; return;
#define per(i,a,n) for(int i=n;i>=a;i--)
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define eb emplace_back
#define pb push_back
#define se second
#define fi first
#define endl '\n'
typedef pair<int,int> PII;
typedef long long ll;
typedef double db;
const int INF = 0x3f3f3f3f;
const ll MOD = 1000000007;
const db eps = 1e-6;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
//#define int long long
//headint T = 1, n, m;const int N = 1e5 + 10;
int a[N];void solve() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}if (n == 1) {cout << "0\n";return;}int cnt = 0;int pos = 0;for (int i = n; i >= 2; i--) {if (a[i] < a[i - 1]) {pos = i - 1;break;}}map<int,int> vis;for (int i = 1; i <= pos; i++) {if (!vis[a[i]]) {vis[a[i]] = 1;cnt ++;}}for (int i = n; i >= pos + 1; i--) {if (vis[a[i]]) {if (!vis[a[i-1]]) {vis[a[i-1]] = 1;cnt ++;}}}cout << cnt << endl;
}signed main() {fastIOcin >> T;while(T--) {solve();}return 0;
}

垃圾话(不建议观看会影响心情):

此刻心中 : 郁闷+难受+无奈+疲惫+困惑. 本来没这么多想法的, 起因昨天这场纯纯手速场, 三题rank1000~rank8000. 我本来以为手速慢三题狗个7000不掉太多分. 结果***的起床一看C题FST了, 打CF头一次FST, 巨**晕头转向. 本来昨天这些题就都是些nt题, 我一下午坐了牛客的牢爆零又坐八点ABC手速慢的牢, 晚上nm又CF搞手速场, nm玩我是吧, 我还nm交题忘记删循环, 关键还**过了pretest, FST 直接O(n^2) t到飞起, 真是f**k了.

总结我的失败人生:

ACM纯纯瞎jb打, 各种正式比赛只出简单题/ 签到题/ 简单思维题 / 各种nt题./ 算法基础/ 简单板子题, 目前没做出来任何一道有难度的...

CF打了一个假期, 遇到的没几个正常的场次, 要不就是nm手速场, 状态一直低迷, nt题出的慢, 同样是2题和别人的rank能差出5000多, 要不就是蹲大牢看着题目傻眼...

ATC的ARC就一题水平, ABC三到五题纯看出题人心情...

牛客多校没有一次不坐牢的.

这假期状态一直不好, 失眠 + 身体状态... 不想找理由了... 但一定要给自己一些约束:

1.训练强度/方向: 这一个月内搞dp, 图, 数据结构,., 其他常用的算法, 数学, c++语法糖. 付出实际努力, 别自我欺骗.

2.必须达成的目标: 10场内 CF上1400+, 10场内ATC上青, 5场内牛客1500+, 状态不好就不要打, 直接有状态再vp, 别梦游着困得迷糊的瞎**打.

3.要么不做, 既然做了, 那就做好, 从3月正式接触ACM, 3月练了半个月, 4月练了一个月, 7月练了一个月. 加上这个月差不多小四个月, 仔细想想自己沉浸在刷水题/ 抄题解等无意义行为中,  没有真正投入到思考中, 这样是不会有水平上的提升的. ->独立思考 + 投入时间 + 补题 = 水平提升

4.思维很重要, 题目要读请, 多动手去算, 多考虑边界情况, 想好后再一口气写出来,别把时间浪费在重复的工作上, 看题目脑子宕机就转移注意力短暂放空后再回看, 一定要学新算法, 一定要学扎实, 一定要高效率, 一定不能只刷水题, 一定要多想, 多练, 多总结.

5.目标, 计划, 反思, 都有了, 如果做不到上述规划, 我直接退acm, 口口声声说着打acm是为了热爱, 是喜欢算法的我, 如果天天摸鱼划水不如趁早爪巴...

over.

Codeforces Round #813 (Div. 2) A-C相关推荐

  1. Codeforces Round #506 (Div. 3)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...

最新文章

  1. UVa133 - The Dole Queue
  2. 视频直播技术详解(8)直播云 SDK 性能测试模型
  3. SQL 列转行、行转列 - 使用sqlite演示
  4. HTML-参考手册: URL 编码
  5. thinkphp curd的事务回滚 一看就会
  6. Threejs性能监视和可视化控制
  7. 设置ubuntu默认python3设置
  8. MySQL学习笔记_1_MySQL数据库管理系统概述
  9. oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
  10. 判断字符串括号是否闭合(){}[]
  11. 【Codeforces contest-1214 E】Petya and Construction Set【树上构造】
  12. 收集到特拉斯的《引力的动态理论》之中的几句话
  13. mysql 正则表达式_MySQL的正则表达式
  14. php在word中生成表格,word创建表格的三种方法分别是什么
  15. spring cloud 总结(摘抄版)
  16. it系统应急响应流程图_各类突发事件应急处置流程图,速看!
  17. matlab中欠定方程组超定方程组_学会这些三元一次方程组的解法思路与运用,初中不再怕解方程...
  18. 索尼xz2android设置向导,安卓9.0上线:索尼XZ2 Premium更新喜迎全面屏新操作!
  19. abb机器人负载配置设定_ABB机器人配置Profinet网络配置流程.pdf
  20. 对话硅谷高科技创业公司

热门文章

  1. 互联网晚报 | 8月25日 星期三 | 拼多多年度活跃买家数达8.5亿;钉钉推出首个数字工牌产品“钉工牌”;小度科技完成B轮融资...
  2. 深入java虚拟机-JVM (java virture mechine)
  3. 巴塞尔枷锁与评级霸权制约中国
  4. AltiumDesigner 功能 - 开窗
  5. pythonxy官网下载_GitHub - oxtaw/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  6. [附源码]Nodejs计算机毕业设计理想电子商城网站Express(程序+LW)
  7. linux安装谷歌验证器
  8. 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份, * 多了一个,这只猴子把多的一个扔入海中,拿走了一份
  9. Android 手写实现插件化换肤框架 兼容Android10 Android11
  10. cf不能全屏win7的解决方法_Win10运行DNF全屏后黑屏怎么办|DNF全屏后黑屏解决方法...