Educational Codeforces Round 84 (Rated for Div. 2) A~ ESZU cf集训
A题
题目大意:就是给你一个数问是否可以分解为k个整数
思路可以观察到一个数最多分解个数不超过自身的根号(不会证qwq)偶数就分偶个奇数,奇数就奇数个
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<unordered_map>
#include<bitset>
#include<cmath>
#define f first
#define s second
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
using namespace std;typedef long long LL;
typedef pair<int,int> PII;const int mod = 1e9 + 7;
const int N = 6e5 + 100;int tree[N];//
LL n, k, c;
int l[N], r[N];
int pos[N];
int main()
{IOS;cin >> c;while(c --){cin >> n >> k;if(n < k * k ) cout<<"NO"<<endl;else{if((n % 2 == 0 && k % 2 == 0)||(n % 2 == 1 && k % 2 == 1))cout<<"YES"<<endl;elsecout<<"NO"<<endl;}}return 0;
}
B题
题目大意就是n个公主n个王子,每个公主都有自己想嫁的一系列王子,如果类似二分图匹配,不过这只是一个模拟题。每个公主会嫁给自己列表里里面第一个未婚的王子不一定是第一个王子因为第一个王子可能会被前面的公主供了
思路就是按照题意取模拟;存下哪个公主和王子没有被取走输出就好了
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<unordered_map>
#include<bitset>
#include<cmath>
#define f first
#define s second
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
using namespace std;typedef long long LL;
typedef pair<int,int> PII;const int mod = 1e9 + 7;
const int N = 2e5 + 100;
unordered_map<int,bool> pr;
int ps;
int tree[N];//��ʾǰ���� ���ٸ���;
int n, k, c;
int l, r;
bool pos[N];
int main()
{IOS;cin >> c;while(c --){pr.clear();ps = INF;cin >> n;for(int i = 1; i <= n; ++ i){bool flag = true;cin >> k;for(int j = 1; j <= k; ++ j){cin >> r;if(!pr[r] && flag){pr[r] = true;flag = false;}}if(flag) ps = i;}if(ps == INF) cout << "OPTIMAL" << endl;else {for(int i = 1; i <= n; ++ i){if(!pr[i]){cout << "IMPROVE" << endl;cout << ps <<" " << i << endl;break;}}}}return 0;
}
C题
题目大意就是一个二维平面(有限面积)上有一堆点,每个点都要被移动到指定位置一次,一次移动就要移动所有的点,如果这个点在墙上了就不动了 就是问你是否可以在2n*m的操作数内达到目标,如果可以就输出,同多个点可以在同一个位置
思路就是2nm可以跑n*m两次了我们不妨把点都压到一个点再去跑全图。。。。。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define me(a,x) memset(a,x,sizeof a)
#define rep(i,x,n) for(int i=x;i<n;i++)
#define repd(i,x,n) for(int i=x;i<=n;i++)
#define all(x) (x).begin(), (x).end()
#define pb(a) push_back(a)
#define paii pair<int,int>
#define pali pair<ll,int>
#define pail pair<int,ll>
#define pall pair<ll,ll>
#define x first
#define y second
char c[100005];
int main()
{int n,m,k;cin>>n>>m>>k;int cnt=0;for(int i=0;i<n;i++) c[cnt++]='D';for(int i=0;i<m;i++) c[cnt++]='R';for(int i=0;i<n;i++){for(int j=0;j<m-1;j++){if(i&1) c[cnt++]='R';else c[cnt++]='L';}if(i!=n-1) c[cnt++]='U';}cout<<cnt<<endl;c[cnt]='\0';puts(c);return 0;
}
D题
题目大意就是找环中等距的位置始得这些位置上的颜色都是相同的,求出最小的周期,
这题难点在题意得理解qwq,我们只要枚举一下循环节就好了
#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
int p[N], c[N], T, n, ans;
bool vis[N];
vector<int> tmp;
vector<int> d[200005];
void solve()
{memset(vis,0,sizeof(bool)*(n+1));for(int i = 1; i <= n; ++ i)if(!vis[i]){tmp.clear();for(int u = i; !vis[u]; u = p[u])vis[u] = true, tmp.push_back(c[u]);int m = tmp.size();for(int x: d[m]){if(ans <= x)break;for(int u = 0;u < x;++ u){bool flag = true;for(int v = u; v < m;v += x)if(tmp[v] != tmp[u]){flag = false;break;}if(flag)ans = min(ans, x);}}}
}
int main()
{cin>>T;for(int i = 1; i <= 200000; ++ i)for(int j = i; j <= 200000;j += i)d[j].push_back(i);while(T--){cin>>n;for(int i=1;i<=n;++i)cin>>p[i];for(int i=1;i<=n;++i)cin>>c[i];ans = n;solve();cout<<ans<<endl;}return 0;
}
E题是一道。。。。可以水过去得题就是先暴力跑找到规律就好了。。。。。
Educational Codeforces Round 84 (Rated for Div. 2) A~ ESZU cf集训相关推荐
- Educational Codeforces Round 84 (Rated for Div. 2) D. Infinite Path 构建环 + 思维
传送门 文章目录 题意: 思路: 题意: 懒得写了,直接贴图了. 思路: 遇事不决画成图,考虑将iii向p[i]p[i]p[i]连一个边,可以发现每个点入度为111,出度为111,所以画出来是若干个环 ...
- Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)
Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...
- 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. ...
- Educational Codeforces Round 37 (Rated for Div. 2) 1
Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...
- Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)
Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...
- Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs
传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...
- Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...
- Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学
传送门 文章目录 题意: 思路: 题意: 给你一个数组aia_iai,定义一个数组是好的当且仅当对于所有iii都有ai!=ia_i!=iai!=i.定义f(a)f(a)f(a)表示数组aaa中i& ...
最新文章
- 对DataSet,DataRow,DateTable转换成相应的模型
- Java 20年:历史与未来
- ssh 连接服务器_使用 SSH Key 访问服务器
- 使用QT-QSerialport打不开串口的原因
- 给 TWebBrowser.Document 定义事件
- NTP服务器时间同步
- 服务器2003 系统修复,第十一篇 Windows Server 2003系统修复.pdf
- System.Delete - 从字符串中删除
- 【Java】【编译】javac编译源代码时,若源文件使用了别的java源代码的函数,javac会自动关联。...
- 拓端tecdat|使用Python中的ImageAI进行对象检测
- 计算机管理中无法格式化,Win7电脑无法格式化SD卡怎么办?
- 最佳的46+14款免费软件
- SQLServer2008不允许保存更改
- Socket(服务器端)通信连接失败解决方法
- poj 2387 最短路 spfa 实现
- 关闭WPS广告弹窗骚扰(Kingsoft Office 推荐)
- SharePoint 模拟审批Nintex工作流
- access行列转换。
- linux下hg无法运行_Linux 无法启动常见的几种原因及解决办法
- Win10 电脑屏幕亮度随背景颜色变化而变化