【2018百度之星初赛 B】1001并查集 1004二分 1006不等式
1001 degree
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6380
并查集向图中加点,分别记录与初始度数最多的点 直接相连的点数、独立的点数;则间接相连的点数 = n-1-直接相连的点数;
#include<iostream>
#include<algorithm>
#include<set>
#include<map>
using namespace std; int T,n,m,k;
int f[], a[]; int find(int x) {
if(f[x]!=x)
f[x]=find(f[x]);
return f[x];
} void Union(int x, int y) {
int w = find(x);
int s = find(y);
f[w] = s;
} int main()
{
cin>>T;
while(T--)
{
cin>>n>>m>>k;
for(int i=; i<n; i++) {
a[i]=; f[i]=i;
}
int maxn=, maxx=;
for(int x,y,i=; i<m; i++) {
cin>>x>>y;
Union(x, y);
if(x==y) continue;
a[x]++, a[y]++;
if(a[x]>maxn) maxx=x, maxn=a[x];
if(a[y]>maxn) maxx=y, maxn=a[y];
} int root = find(maxx);
for(int i=; i<n; i++) {
int t = find(i);
if(t==i && t!=root) maxn++;
} int dir = n-maxn-;
if(k>=dir) maxn=n-;
else maxn+=k; if(!n) maxn = ;
cout<<maxn<<endl;
}
return ;
}
1004 p1m2
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6383
找出数列中最大值和最小值,二分枚举答案,对于每一个答案都循环计算一次;思想同二分查找,每次答案所在区间缩小一半;
#include<iostream>
#include<algorithm>
using namespace std; #define min(a,b) a>b?b:a
#define LL long long
const int N = ;
LL T, n, a[N]; int main()
{
ios::sync_with_stdio(false);
cin>>T;
while(T--)
{
cin>>n;
LL minn=1e9, maxn=-;
for(int i=; i<n; i++) {
cin>>a[i];
minn = min(a[i], minn);
maxn = max(a[i], maxn);
} while(minn <= maxn) {
LL mid = (minn+maxn)/, tmp = ;
for(int i=; i<n; i++) {
if(a[i]>mid) tmp += (a[i]-mid)/;
else tmp += a[i]-mid;
}
if(tmp<)
maxn = mid-;
else
minn = mid+;
}
cout<<maxn<<endl;
} return ;
}
1006 rect
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6385
假设有交叉线的情况存在,对这种假设列满足条件的不等式,发现矛盾,所以不存在交叉线情况;
#include<iostream>
using namespace std; #define min(a,b) a>b?b:a
#define LL long long
int T;
LL mx, my, n; int main()
{
cin>>T;
while(T--) {
cin>>mx>>my>>n; LL ans=;
int x,y;
for(int i=; i<n; i++) {
cin>>x>>y;
if(x<=mx/ && y<=my/) ans += min(x,y);
else if(x>=mx/ && y<=my/) ans += min(mx-x, y);
else if(x>=mx/ && y>=my/) ans += min(mx-x, my-y);
else if(x<=mx/ && y>=my/) ans += min(x, my-y);
}
cout<<ans<<endl;
} return ;
}
【2018百度之星初赛 B】1001并查集 1004二分 1006不等式的更多相关文章
- 2018百度之星初赛B - A,D,F
总结:这一次的百度之星之行到这里也就结束了,充分的认识到了自己的不足啊...果然还是做的题太少,,见识的题型也还太少,对于STL的掌握还是不够到位啊!!(STL大法是真的好,建议大家认认真真的好好学学 ...
- 2018 百度之星 初赛 第六题 HDU6349
三原色图 Accepts: 281 Submissions: 1261 Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 262144/ ...
- 百度之星初赛2A 1001 ALL X(HDU 5690)
All X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- 2018百度之星初赛(A)2 度度熊学队列
思路: 记录一下c++ stl中的双向链表list的各种用法. https://blog.csdn.net/fanyun_01/article/details/56881515 实现: #includ ...
- 【2018百度之星初赛(A)】1002 度度熊学队列
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6375 Knowledge Point: STL - map:https://www.cnblogs.c ...
- 2018百度之星初赛B轮 p1m2
p1m2 Accepts: 954 Submissions: 4063 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/1310 ...
- 2018百度之星初赛B轮 rect
rect Accepts: 1654 Submissions: 2948 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131 ...
- 2018百度之星初赛A轮 度度熊拼三角
#include<bits/stdc++.h> using namespace std; int n; int a[1005]; int main() { int ans; ...
- 2018百度之星初赛A轮 度度熊学队列
注意:刚开始用数组存deque<int> qa[MAX]会爆内存 需要改用map<int, deque<int> > qa优化 不明觉厉 #include<b ...
随机推荐
- mysql error:You can't specify target table for update in FROM clause
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...
- Swift4 模式, 枚举型
创建: 2018/03/05 完成: 2018/03/05 更新: 2018/03/10 改变标题 [Swift4 模式] -> [Swift4 模式, 枚举型] 补充RawRepresenta ...
- bzoj 5281: [Usaco2018 Open]Talent Show【dp】
注意到sum_t比较小,所以设f[i][j]为选前i头牛,当前sum_t为j的最小sum_w值,转移是f[i][j]=min(f[i-1][j],f[i-1][j-t[i]]+w[i]),然后i维用滚 ...
- 上帝造题的七分钟2/花神游历各国/GSS4 线段树维护区间开方 By cellur925
题目传送门 或者 另一个传送门 询问区间和都好说.但是开方?? 其实是这样的,一个数(1e9)以内连续开方6次就会变成1,于是我们就可在开方操作上进行暴力修改.暴力修改的意思其实也就是找到叶子节点进行 ...
- 自定义View(12)绘制.9图片
代码如下: // 绘制.9图片 void draw9Path(Canvas canvas){ //创建一个ninePatch的对象实例,第一个参数是bitmap.第二个参数是byte[],这里其实要求 ...
- 222 Count Complete Tree Nodes 完全二叉树的节点个数
给出一个完全二叉树,求出该树的节点个数.完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底层为第 h ...
- Spring @Resource、@Autowired、@Qualifier区别
@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入: @Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualif ...
- [转]探索 Windows Azure Storage
本文转自:https://msdn.microsoft.com/zh-tw/jj573842 概觀 儲存服務 (Storage services) 在 Windows Azure 運算模擬器中提供了可 ...
- 记录一下java在后端用request来判断请求类型
这几天看代码,看到这么一个操作. String requestType = request.getHeader("X-Requested-With"); 于是各种查找 这里记 ...
- 学JAVA第二十三天,List类型和Set类型
数组,是我们最常用的,但是有时候,我们要用数组,但是又不知道数组的类的长度的时候, 我们java就有一个很好用的工具Collection,这都是java的爸爸的用心良苦,Collection中包含Li ...