IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【Codeforces Round #808 (Div 2.) A·B·C】 -> 正文阅读

[C++知识库]【Codeforces Round #808 (Div 2.) A·B·C】

更好的阅读体验 \color{red}{更好的阅读体验} 更好的阅读体验



A. Difference Operations


原题链接

Origional Link


思想

  • a i ( i > = 2 ) a_i(i>=2) ai?(i>=2)可以通过 a i = a i ? a i ? 1 a_i=a_i-a_{i-1} ai?=ai??ai?1?变为 0 0 0
  • 说明: a i ? 1 ∣ a i a_{i-1}|a_i ai?1?ai?
  • a i ? 1 ( i > = 2 ) a_{i-1}(i>=2) ai?1?(i>=2)可以通过 a i ? 1 = a i ? 1 ? a i ? 2 a_{i-1}=a_{i-1}-a_{i-2} ai?1?=ai?1??ai?2?变为 0 0 0
  • 说明: a i 2 ∣ a i ? 1 a_{i_2}|a_{i-1} ai2??ai?1?
  • 由此可得,当 a i ( i > = 2 ) a_i(i>=2) ai?(i>=2)可以变为 0 0 0
  • 说明: a 1 ∣ a i a_1|a_i a1?ai?

代码

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 3;

int a[N];

void solve(){
	
	int n;
	
	cin >> n;
	
	for(int i = 1 ; i <= n ; i++){
		cin >> a[i];
	}
	
	bool flag = 1;
	
	int t = a[1];
	
	for(int i = 2 ; i <= n ; i++){
		if(a[i] % t != 0){
			flag = 0;
			break;
		}
	}
	
	if(flag) cout << "YES" << "\n";
	else cout << "NO" << "\n";
	
}

int main(){
	
	int tt;
	cin >> tt;
	while(tt -- ){
		solve();
	} 
	
	return 0;
	
}

B. Difference of GCDs


原题链接

Origional Link


思想

  • 要求 g c d ( i , a i ) gcd(i,a_i) gcd(i,ai?)所构成的序列里, g c d ( i , a i ) gcd(i,a_i) gcd(i,ai?)均不同
  • 说明 g c d ( i , a i ) = i gcd(i,a_i)=i gcd(i,ai?)=i,即 i ∣ a i i|a_i iai?
  • 故需要在区间 [ l , r ] [l,r] [l,r]中寻找 i i i的倍数
  • 对于 a i a_i ai?,若 l ? a i = ? r i ? × i ? r l\leqslant a_i=\lfloor \frac{r}{i}\rfloor\times i\leqslant r l?ai?=?ir??×i?r,则满足条件

代码


#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 3;

int a[N];

void solve(){
	
	int n, l, r;
	cin >> n >> l >> r;
	
	bool flag = 1;
	
	for(int i = 1; i <= n; i++){
		
		a[i] = r / i * i;
		if(a[i] < l ){
			flag = 0;
			break;
		}
		
	}
	
	if(flag){
		cout << "YES" << "\n";
		for(int i = 1; i <= n; i++) cout << a[i] << " ";
		cout << "\n";
	}
	else cout << "NO" << "\n";
	
}

int main(){
	
	int tt;
	
	cin >> tt;
	
	while(tt--){
		solve();
	}
	
	return 0;
	
}

C. Doremy’s IQ


原题链接

Origional Link


思想

  • 逆向贪心
  • 从最后一天考虑,设智商上限为 Q Q Q,最后一天的智商为 q i = 0 q_i=0 qi?=0
  • a i ? q i a_i \leqslant q_i ai??qi?,则第 i i i天的比赛需要打
  • a i > q i a_i \gt q_i ai?>qi?,且 q i < Q q_i<Q qi?<Q时,若第 i i i天打比赛,则 q i = q i + 1 q_i=q_i+1 qi?=qi?+1
  • 由于 a i > q i a_i>q_i ai?>qi?的比赛最多打 Q Q Q次,对于前面的比赛要继续打,需要 q i q_i qi?尽可能的大
  • a i > q i a_i \gt q_i ai?>qi?,且 q i < Q q_i<Q qi?<Q时,该第 i i i天的比赛必须打, q i = q i + 1 q_i=q_i+1 qi?=qi?+1
  • a i > q i a_i>q_i ai?>qi?,且 q i = Q q_i=Q qi?=Q时,第 i i i天的比赛不能打

代码

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 3;

int a[N];

void solve(){
	
	int n,m;
	
	cin >> n >> m;
	
	string s(n,'0');
	
	for(int i = 0; i < n; i++) cin >> a[i];
	
	int q=0;
	
	for(int i = n-1; i >= 0; i--){
		
		if(a[i] <= q) s[i] = '1';
		else if(a[i] > q && q < m){
			q++;
			s[i] = '1';
		}
		
	}
	
	cout << s << "\n";
	
}

int main(){
	
	int tt;
	
	cin >> tt;
	
	while(tt--){
		solve();
	}
	
	return 0;
		
}

后记

  • 这天比赛脑子有点抽风
  • A A A B B B居然都是数学证明的类型,考虑麻烦了,把自己陷了进去
  • 赛后补题发现 A A A B B B原来这么简单,还是自己数学基础不好,吃大亏QAQ
  • C C C题一眼DP,赛时考虑了贪心,但是没证出来,逆向贪心的问题不知道怎么处理
  • 希望早日变绿。。。。。。(我好笨比)
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:19:47  更:2022-07-21 21:20:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 21:27:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码