Water The Garden

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
#include<math.h>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
} int x[]; int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
int n, k, t;
cin >> t;
while (t--) {
cin >> n >> k;
int ans = ;
for (int i = ; i < k; i++) cin >> x[i];
ans = max(ans, x[]);
ans = max(ans, n - x[k - ] + );
for (int i = ; i < k; i++) ans = max(ans, (x[i] - x[i - ] + ) / );
cout << ans << endl;
}
return ;
}

Tea Queue

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
#include<math.h>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
} int l[], r[]; int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
int n, t;
cin >> t;
while (t--) {
cin >> n;
for (int i = ; i < n; i++) cin >> l[i] >> r[i];
int time = ;
for (int i = ; i < n; i++) {
if (time < l[i]) time = l[i];
if (time > r[i]) {
cout << << ' ';
continue;
}
cout << time << ' ';
time++;
}
cout << endl;
}
return ;
}

Swap Adjacent Elements

显然一段1+0子段是可以变换为任意顺序的,而各个1+0中间单独存在的0必须满足a[i]=i时才能完成排序。对于某一段1+0子段,假设对应区间为a[i]~a[j]由于它无法与其他子段发生交换,所以a[i]~a[j]中的数字必须由i~j组成。

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
#include<math.h>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
} int a[], p[], b[];
bool f[]; int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
int n;
cin >> n;
for (int i = ; i <= n; i++) {
cin >> a[i];
p[a[i]] = i;
}
char ch;
for (int i = ; i < n; i++) {
cin >> ch;
b[i] = ch - '';
}
b[n] = ;
bool ok = true;
int ptr = ;
while (ptr <= n) {
if (b[ptr] == ) {
if (a[ptr] != ptr) ok = false;
ptr++;
} else {
int l = ptr;
while (b[ptr] == ) ptr++;
int r = ptr;
for (int i = l; i <= r; i++) f[i] = false;
for (int i = l; i <= r; i++) f[a[i]] = true;
for (int i = l; i <= r; i++) if (!f[i]) ok = false;
ptr++;
}
}
if (ok) cout << "YES" << endl;
else cout << "NO" << endl;
return ;
}

Tanks

如果所有的水箱中水量加起来不到v,则方案不存在。

首先选出若干个水箱,他们当前的水量加起来与v对k取余相同,若选不出来,则方案不存在。

对于选出的水箱,首先把这部分水箱中的水集中在一起,然后把其余的水箱中的水集中在一起,然后再舀回若干次k即可。

代码鸽了。

Connected Components

观察一下这个数据,其实挺搞笑的。对于小数据,怎么搞都可以。对于n和m都是20w的大数据,其答案肯定是199990+和几个一位数组成。

对于大小是S1和S2的两个强联通分量,其中的不直连关系至少要有S1*S2个。对于给定条件,每个点都缺少若干条边,其中有一个缺少的边数量最少的点,设为r,r缺边数量设为p。p能有多少呢?如果p能上万,那有缺边现象的点就不会超过20个。所以p估计也就是个四五百顶天了,那么最大的一个强联通分量就已经直接预订了这(n-四五百)这么多的点。

对于剩下的点,先不考虑外面,把他们内部的强连通分量分别算出来,然后对于每个强联通分量,如果其中一个点有连向外部的边,那么它属于最大的强联通分量的一部分,否则就是一个独立的真强联通分量。

代码鸽了

SUM and REPLACE

List of  Integers

[Codeforces]Educational Codeforces Round 37 (Rated for Div. 2)的更多相关文章

  1. Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements (思维,前缀和)

    Educational Codeforces Round 37 (Rated for Div. 2)C. Swap Adjacent Elements time limit per test 1 se ...

  2. Educational Codeforces Round 37 (Rated for Div. 2) 920E E. Connected Components?

    题 OvO http://codeforces.com/contest/920/problem/E 解 模拟一遍…… 1.首先把所有数放到一个集合 s 中,并创建一个队列 que 2.然后每次随便取一 ...

  3. Educational Codeforces Round 37 (Rated for Div. 2)

    我的代码应该不会被hack,立个flag A. Water The Garden time limit per test 1 second memory limit per test 256 mega ...

  4. Educational Codeforces Round 37 (Rated for Div. 2) G

    G. List Of Integers time limit per test 5 seconds memory limit per test 256 megabytes input standard ...

  5. Educational Codeforces Round 37 (Rated for Div. 2) E. Connected Components? 图论

    E. Connected Components? You are given an undirected graph consisting of n vertices and edges. Inste ...

  6. Educational Codeforces Round 72 (Rated for Div. 2)-D. Coloring Edges-拓扑排序

    Educational Codeforces Round 72 (Rated for Div. 2)-D. Coloring Edges-拓扑排序 [Problem Description] ​ 给你 ...

  7. Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...

  8. Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...

  9. Educational Codeforces Round 43 (Rated for Div. 2)

    Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...

随机推荐

  1. PyCharm与GitHub环境配置

    转载地址:https://blog.csdn.net/xierhacker/article/details/70053162 一.准备工作 Ⅰ.git下载和安装 要连接GitHub,首先git是必不可 ...

  2. java源码

    Java泛型中的标记符含义: K - Key(键) V - Value(值) E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类,可做泛型) N - Nu ...

  3. 复习MySQL②数据类型及约束条件

    数据类型分为数值类型.日期和时间类型.字符串类型 数值类型: – INT:有符号的和无符号的.有符号大小-2147483648~2147483647,无符号大0~4294967295. 宽度最多为11 ...

  4. SpringBoot背景

    1.SpringBoot的产生背景:随着spring日益发展,丰富的框架和组件大大简化了java项目开发过程,经过多年的实践,得到了很多人的认可,但是Spring的严重依赖XML配置文件,严重导致项目 ...

  5. 9.简单理解ES分布式

    主要知识点:     1.Elasticsearch对复杂分布式机制的透明隐藏特性 2.Elasticsearch的垂直扩容与水平扩容 3.增减或减少节点时的数据rebalance 4.master节 ...

  6. Python中字符串操作函数string.split('str1')和string.join(ls)

    Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...

  7. Windows 安装react native

    1.下载node.js (https://nodejs.org/en/) 2.安装node.js,安装完成后按住 图标键+R ,输入CMD进入命令行终端,输入npm -v C:\Users\Admin ...

  8. uva 交叉染色法10004

    鉴于网上讲交叉染色的资料比较少,于是我把我自己的心得与方法贴出来,方便与大家共同进步. 二分图: 百度百科传送门 wiki百科传送门 判断一个图是否为二分图可以用交叉染色的方法来判断,可以用BFS,也 ...

  9. spring boot @Transactional事物处理

    spring boot 添加事物使用 @Transactional注解 简单使用 在启动类上方添加 @EnableTransactionManagement注解 使用时直接在类或者方法上使用 @Tra ...

  10. 小记——Grub Rescue恢复

    下面我要讲的是一个悲伤的故事 引子 电脑状况简介:两块硬盘(1HHD.1SSD),SSD上装了LINUX(40G)+WIN10(50G)的双系统,SSD剩余部分在WIN下使用装程序,HHD做仓库.LI ...