Codeforces Round #544 (Div. 3) D F1 F2
题目链接:D. Zero Quantity Maximization
#include <bits/stdc++.h> using namespace std; #define maxn 200005 #define LL long long #define pii pair<LL,LL> map<pair<LL,LL>,LL>mp,mpp; LL a[maxn],b[maxn]; LL gcd(LL a,LL b){ return b?gcd(b,a%b):a; } int main(){ LL n; scanf("%lld",&n); ;j<n;j++){ scanf("%lld",&a[j]); } ;k<n;k++){ scanf("%lld",&b[k]); } LL mx = ,ans = ; ;j<n;j++){ LL z = gcd(abs(a[j]),abs(b[j])); ){ a[j] = -a[j]; b[j] = -b[j]; } ){ ) ans++; continue; } ){ mp[make_pair(1LL*,1LL*)]++; mx = max(mx, mp[make_pair(1LL*,1LL*)]); continue; } mp[make_pair(a[j]/z,b[j]/z)]++; mx = max(mx, mp[make_pair(a[j]/z,b[j]/z)]); } printf("%lld\n",mx+ans); }
F1: Spanning Tree with Maximum Degree
判断一下 bfs 就ok
#include<bits/stdc++.h> using namespace std; #define maxn 200005 #define LL long long vector<int>q[maxn]; int fa[maxn]; bool flag[maxn]; void bfs(int u){ queue<int>Q; Q.push(u); while(!Q.empty()){ u = Q.front(); Q.pop(); ;j<q[u].size();j++){ int v = q[u][j]; if(!flag[v]){ flag[v] = ; Q.push(v); printf("%d %d\n",u,v); } } } } int main(){ memset(fa,,sizeof(fa)); memset(flag,,sizeof(flag)); ,; scanf("%d%d",&n,&m); ;j<m;j++){ int u,v; scanf("%d%d",&u,&v); q[u].push_back(v); q[v].push_back(u); fa[u]++; fa[v]++; if(mx<fa[u]){ mx = fa[u]; in = u; } if(mx<fa[v]){ mx = fa[v]; in = v; } } // cout<<in<<endl; flag[; bfs(in); }
F2 :F2. Spanning Tree with One Fixed Degree
先判断 节点的度够不够 不够直接 输出 NO
dfs 判断1有多少个连通块 如果连通块数量 大于d 直接输出NO
最后 添加 在 1 节点添加 d-连通块个数个 点 bfs
#include <bits/stdc++.h> using namespace std; #define maxn 200005 #define LL long long #define pii pair<int,int> vector<int>q[maxn],z; vector<pii>lis; bool fa[maxn]; int n,m,d; void dfs(int u){ ;j<q[u].size();j++){ int v = q[u][j]; if(!fa[v]){ fa[v] = ; dfs(v); } } } bool bfs(int u){ queue<int>Q; ; Q.push(u); while(!Q.empty()){ u = Q.front(); Q.pop(); ;j<q[u].size();j++){ int v = q[u][j]; if(!fa[v]){ fa[v] = ,sum++; Q.push(v); //cout<<u<<" "<<v<<endl; lis.push_back(make_pair(u,v)); ){ d--; ) break; } } } } //cout<<sum<<" "<<n-1<<endl; )) ; ; } int main(){ scanf("%d%d%d",&n,&m,&d); memset(fa,,sizeof(fa)); ; ;j<m;j++){ int u,v; scanf("%d%d",&u,&v); q[u].push_back(v); q[v].push_back(u); ||v==) sum++; } if(sum<d){ printf("NO\n"); ; } fa[]=; set<int>se; ;j<q[].size();j++){ ][j]; if(!fa[v]){ fa[v]=; se.insert(v); dfs(v); } } //cout<<se.size()<<endl; if(se.size()>d){ printf("NO\n"); ; } //cout<<*se.begin()<<endl; ;j<q[].size()&&se.size()<d;j++){ se.insert(q[][j]); } q[].clear(); for(auto &i:se){ //cout<<i<<endl; q[].push_back((int)i); } memset(fa,,sizeof(fa)); fa[] = ; bfs(); printf("YES\n"); ;j<lis.size();j++){ pii pa = lis[j]; printf("%d %d\n",pa.first,pa.second); } }
Codeforces Round #544 (Div. 3) D F1 F2的更多相关文章
- Codeforces Round #544 (Div. 3) 题解
Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization 题目链接:https://codeforces.com/contest/113 ...
- CodeForces Round #544 Div.3
A. Middle of the Contest 代码: #include <bits/stdc++.h> using namespace std; int h1, m1, h2, m2; ...
- Codeforces Round #544 (Div. 3)解题报告
A.Middle of the Contest 考虑把输入的时间单位化成分钟,相加除以2就好了 #include<bits/stdc++.h> using namespace std; # ...
- Codeforces Round #544 (Div. 3) (补)
D:没有注意到a==0&&b==0的情况,把自己卡崩了.对于数学公式推导一定要注意关于0的特殊情况,不可以少 #include <iostream> #include &l ...
- Codeforces Round #544 (Div. 3) dp + 双指针
https://codeforces.com/contest/1133/problem/E 题意 给你n个数(n<=5000),你需要对其挑选并进行分组,总组数不能超过k(k<=5000) ...
- Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization
链接:https://codeforces.com/contest/1133/problem/D 题意: 给两个数组a,b. 同时ci = ai * d + bi. 找到一个d使c数组中的0最多. 求 ...
- Codeforces Round #544 (Div. 3) C. Balanced Team
链接:https://codeforces.com/contest/1133/problem/C 题意: 给n个数, 在这n个数中选最多n个数,来组成一个队伍. 保证这n个数的最大最小差值不大于5. ...
- Codeforces Round #544 (Div. 3) B.Preparation for International Women's Day
链接:https://codeforces.com/contest/1133/problem/B 题意: 给n个数,和一个k,在n个数中选几对数,保证没对数相加可以整除k. 求最大能选几个数. 思路: ...
- Codeforces Round #544 (Div. 3) A.Middle of the Contest
链接:https://codeforces.com/contest/1133/problem/A 题意: 给两个时间点,求中间时间点. 思路: 数学 代码: #include <bits/std ...
随机推荐
- vue学习记录①(vue-cli脚手架构建项目结构)
我们直接从vue的工程化开始入手. 在这里用git命令行搭建项目环境.(当然直接cmd命令行下也是一样的) git下载安装地址:https://www.git-scm.com/download/win ...
- JS 的继承
1:原生链:prototype 儿子能够继承父亲的属性,也可以觉得遗传基因不好自己改属性,(但是不能改变老爸的属性). 看例子: function farther(){ ...
- C++ 子类继承父类纯虚函数、虚函数和普通函数的区别
C++三大特性:封装.继承.多态,今天给大家好好说说继承的奥妙 1.虚函数: C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现.子类可以重写父类的虚函数实现子类 ...
- 解决laravel Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found 错误
这个错误的原因来自于没有安装一个依赖库: 官方文档说明如下: Modifying Columns Prerequisites Before modifying a column, be sure to ...
- C#零基础入门-2-Visual Studio (VS)程序初始化及各组成部分
X:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe 可以使用桌面快捷方式启动,也可以从开始菜单启动,还 ...
- zabbix监控交换机状态
1.在Zabbix中添加主机 输入名称.群组和交换机IP(交换机要开启snmp) 2.创建监控项 输入OID和其它信息(键值随便填,但是不能和系统内的键值重复)OID获取方法可查看上一篇文章:http ...
- Hybrid App—Hybrid App开发模式介绍和各种开发模式对比
什么是Hybrid App 最开的App开发只有原生开发这个概念,但自从H5广泛流行后,一种效率更高的开发模式Hybrid应运而生,它就是"Hybrid模式".Hybrid APP ...
- 使用 Flask-Cache 缓存给Flask提速
https://blog.csdn.net/u013205877/article/details/78013289
- Shell企业案例实战和企业面试题
shell企业面试题 1.批量创建带有随机小写字符文件程序 使用for循环在/pizza目录下创建10个html文件,其中每个文件包含10个随机小写字母加固定字母_pizza 1.思路分析: 核心是: ...
- 【原创】那些年用过的Redis集群架构(含面试解析)
引言 今天是2019年2月12号,也就是大年初八,我接到了高中同学刘有码面试失利的消息. 他面试的时候,身份是某知名公司的小码农一枚,却因为不懂自己生产上Redis是如何部署的,导致面试失败! 人间惨 ...