Educational Codeforces Round 131 (Rated for Div. 2) A-D题解
题目
- A. Grass Field
- B. Permutation
- C. Schedule Management
- D. Permutation Restoration
A. Grass Field
题解:
(1)若四个位置全是1,则输出2
(2)若全为0则输出0,
(3)其他情况都输出1
/*author : Mzx
*/
#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef long double ld;
typedef pair<int,int> PII;
const ll mod=1e9+7;
const int INF=0x3f3f3f3f;
const int maxn=1e5+10;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define x first
#define y secondint read () {int k=0,f=1;char c=getchar ();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar ();}while (c>='0'&&c<='9') {k=k*10+c-'0';c=getchar ();}return k*f;
}void solve()
{int a,b,c,d;cin>>a>>b>>c>>d;if(a==0&&b==0&&c==0&&d==0) cout<<0<<endl;else if(a==1&&b==1&&c==1&&d==1) cout<<2<<endl;else cout<<1<<endl;
}int main()
{ios;int t;cin>>t;while(t--) {solve();}return 0;
}
B. Permutation
题解:一道思维题,很容易得知d=2时花费总是最大的,证明比较容易就不在此赘述。
/*author : Mzx
*/
#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef long double ld;
typedef pair<int,int> PII;
const ll mod=1e9+7;
const int INF=0x3f3f3f3f;
const int maxn = 2e5+10;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define x first
#define y secondint read () {int k=0,f=1;char c=getchar ();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar ();}while (c>='0'&&c<='9') {k=k*10+c-'0';c=getchar ();}return k*f;
}void solve() {int n;cin>>n;cout<<2<<endl;for(int i = 1;i <= n;i += 2){int p = i;while(p <= n){cout<<p<<' ';p *= 2;}}cout<<endl;
}int main()
{ios;int t; cin>>t;while(t--){solve();}return 0;
}
C. Schedule Management
题解:二分答案,check函数里对n个人分情况算
(1)如果s[i] >= mid的话,用need计数,计算剩下多少需要去完成的任务,
(2)如果s[i] < mid的话,用sum记录剩下的时间可以完成多少“不擅长的任务”.
最后比较一下need和sum的大小即可。
/*author : Mzx
*/
#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef long double ld;
typedef pair<int,int> PII;
const ll mod=1e9+7;
const int INF=0x3f3f3f3f;
const int maxn = 2e5+10;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define x first
#define y secondint read () {int k = 0, f = 1;char c = getchar();while (c < '0' || c > '9') {if (c == '-') f = -1;c = getchar();}while (c >= '0' && c <= '9') {k = k * 10 + c - '0';c = getchar();}return k * f;
}ll s[maxn];
ll n,m;
bool check(ll x)
{ll need = 0;ll sum = 0;for(int i = 1;i <= n;i++){if(s[i] >= x) need += (s[i] - x);else sum += (x-s[i])/2;}if(need <= sum) return true;else return false;
}void solve() {cin>>n>>m;memset(s,0,sizeof s);for(int i = 1;i<=m;i++){int x;cin>>x;s[x]++;}ll l = 1,r = INF;while(l < r){ll mid = (l + r)>>1;if(check(mid)) r = mid;else l = mid + 1;}cout<<l<<endl;
}int main()
{ios;int t; cin>>t;while(t--){solve();}return 0;
}
D. Permutation Restoration
题解:b[i]通过转换可以得到不等式:
就可以转换成一个基本的区间贪心模型了。
PS:需要注意的是,要特判b[i] = 0的情况。
/*author : Mzx
*/
#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef long double ld;
typedef pair<int,int> PII;
const ll mod=1e9+7;
const int INF=0x3f3f3f3f;
const int maxn = 2e5+10;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define x first
#define y secondint read () {int k=0,f=1;char c=getchar ();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar ();}while (c>='0'&&c<='9') {k=k*10+c-'0';c=getchar ();}return k*f;
}void solve() {int n;cin >> n;vector<int> b(n);for (int j = 0; j < n; j++){cin >> b[j];}vector<int> L(n), R(n);for (int j = 0; j < n; j++){if (b[j] == 0){L[j] = j + 2;R[j] = n;} else {L[j] = (j + 1) / (b[j] + 1) + 1;R[j] = (j + 1) / b[j];}}vector<vector<int>> P(n+1);for (int j = 0; j < n; j++){P[L[j]].push_back(j);}priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;vector<int> a(n);for (int j = 1; j <= n; j++){for (int x : P[j]){pq.push(make_pair(R[x], x));}int p = pq.top().second;pq.pop();a[p] = j;}for (int j = 0; j < n; j++){cout << a[j]<<' ';}cout<<endl;
}int main()
{ios;int t; cin>>t;while(t--){solve();}return 0;
}
Educational Codeforces Round 131 (Rated for Div. 2) A-D题解相关推荐
- Educational Codeforces Round 133 (Rated for Div. 2)(CD题解)
Educational Codeforces Round 133 (Rated for Div. 2)CD题解 过AB补CD C. Robot in a Hallway 题意 题意:现有 2∗m 的方 ...
- Educational Codeforces Round 131 (Rated for Div. 2)刷题记录OR题解
题解 A Grass Field 题面翻译 给出一个 2×22 \times 22×2 的矩阵,矩阵的值都是 000 和 111,定义一次操作:选择一个点,将其所在的行和列的点的值全部修改为 000, ...
- Educational Codeforces Round 137 (Rated for Div. 2)A~D题解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 A. Password B. Permutation Val C. Save the Magazines D. Pro ...
- Educational Codeforces Round 140 (Rated for Div. 2)A~D题解
文章目录 A B C D A 思路:就是三个点如果任意两个点的横坐标相同,并且任意两个点的纵坐标相同的话就不行. #include <cstring> #include <iostr ...
- Educational Codeforces Round 113 (Rated for Div. 2) A~D题解
文章目录 A. Balanced Substring B. Chess Tournament C. Jury Meeting D. Inconvenient Pairs A. Balanced Sub ...
- Educational Codeforces Round 127 (Rated for Div. 2) A~E 题解
A. String Building 题意: 问是否可以用 a a . a a a . b b . b b b aa.aaa.bb.bbb aa.aaa.bb.bbb 拼成所给字符串. 思路: 将原字 ...
- Educational Codeforces Round 113 (Rated for Div. 2) D. Inconvenient Pairs
Educational Codeforces Round 113(Rated for Div. 2)的其他题解点我 D. Inconvenient Pairs 原题链接 题目大意: 在一个大小为 1e ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
最新文章
- css怎么设置列表颜色,css怎么设置table颜色
- 8软件遇到的问题及解决方法_问题解决8步法
- 阿里开源组装式 Flutter 应用框架 Fish Redux
- Java RTTI与反射(参照Java编程思想与新浪博客)
- lintcode: k Sum 解题报告
- 一文带你了解Spring核心接口Ordered的实现及应用
- MSSQL Server 导入/导出到远程服务器
- Java Web整合开发(26) -- Spring概述
- excel公式中的$(美元符号)的作用
- 线段树模板hdu 1754:I Hate It
- 非对称加密算法 - Java加密与安全
- PHP判断浏览器类型和浏览器语言(附各国语言简写代码)
- 各数据库要使用保留字的处理办法
- rvest | 网络爬虫初步——使用CSS选择器
- 使用XLSTransformer生成报表的步骤和流程
- 对称加密算法之Java SM4算法应用 附可用工具类
- 数值分析(计算方法)
- linux SCALA 安装及环境配置
- PS利用色彩范围抠图
- 阿里云服务器部署springboot项目