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 ...
随机推荐
- 并发concurrent---2
背景:并发知识是一个程序员段位升级的体现,同样也是进入BAT的必经之路,有必要把并发知识重新梳理一遍. 并发concurrent: 使用ThreadLocal可以实现线程范围内共享变量,线程A写入的值 ...
- 单机Qps上限是多少?
现在这个年代,你要是不懂高并发,你都不好意思说自己是搞互联网的! 一.什么是并发,什么是高并发 并发,两个及以上的行为一起发生,比如你一边吃饭一边看电视 高并发,多个行为(至于是多少,这个没有定数,你 ...
- Bootstrap实现注册界面
样式一 例图 代码 <head> <meta charset="UTF-8"> <title>用户注册</title> <li ...
- Spring+MyBatis整合过程
步骤: 1.引入Spring+MyBatis开发包 >spring(ioc aop dao)开发包 >mybatis开发包,dbcp,驱动包 >mybatis-spring.jar整 ...
- Servlet常用的接口和类
使用接口和类的作用:Servlet也是依靠继承父类和实现接口来实现的.使用Servlet必须要引入两个包:javax.servlet和javax.servlet.http.所有的Servlet应用都是 ...
- mysqli_fetch_array() ,mysqli_fetch_assoc()遇到的问题
该函数每运行一次就会读取一行数据. $book1_imgnum="select * from book_img limit 12"; $book1_totalimg=mysqli_ ...
- C# 离线人脸识别 ArcSoft V2.0 Demo
本来打算做个C#版demo,但没用成功.使用虹软最新人脸识别技术开发完成 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 ...
- 为什么不能在 body 标签的前面的 script 标签中定义 JS 全局变量?
<!DOCTYPE html> <!-- 为什么不能在 body 标签的前面的 script 标签中定义 JS 全局变量? 在全局环境下的代码就是在页面加载阶段从上到下一边加载一边执 ...
- JS的正则表达式及回文
function palindrome(str) { str = str.replace(/\s/g,"").replace(/[^a-zA-Z0-9]/g,"" ...
- react-router(v4)
概要 开发单页应用, 首先绕不开的内容就是路由, react router v4 版本是最新的版本. 和之前的版本相比, 成熟了很多, 也简单了很多, 使用起来更加方便. 核心 component r ...