Codeforces Round #544 (Div. 3) (补)
D:没有注意到a==0&&b==0的情况,把自己卡崩了。对于数学公式推导一定要注意关于0的特殊情况,不可以少
#include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <stack>
#include <queue>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
const double Pi=3.14159265358979323846;
typedef long long ll;
const int MAXN=+;
const int dx[]={,,,,-};
const int dy[]={,-,,,};
const int INF = 0x3f3f3f3f;
const int NINF = 0xc0c0c0c0;
const ll mod=1e9+;
struct node
{
int a,b;
long double c;
}d[MAXN]; bool cmp(node a,node b)
{
return abs(a.a)<abs(b.a);
} bool cmp2(node a,node b)
{
return a.c<b.c;
} int main()
{
int n;scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&d[i].a);
}
for(int i=;i<=n;i++)
{
scanf("%d",&d[i].b);
}
int cnts=;
for(int i=;i<=n;i++)
{
if(d[i].a==&&d[i].b==) cnts++; if(d[i].a!=)
d[i].c=d[i].b*1.0/d[i].a;
else d[i].c=;
}
sort(d+,d+n+,cmp);
int t=;
for(int i=;i<=n;i++)
{
if(d[i].a==) continue;
else
{
t=i;
break;
}
}
if(d[n].a==)
{
cout << cnts<<endl;
return ;
}
// cout <<t<<endl;
/* for(int i=t;i<=n;i++)
{
cout <<d[i].c<<" ";
}*/
sort(d+t,d+n+,cmp2);
/*for(int i=t;i<=n;i++)
{
cout <<d[i].c<<" ";
}*/
int ans=;int cnt=;long double x=d[t].c;
for(int i=t+;i<=n;i++)
{
if(d[i].c==x)
{
cnt++;
ans=max(ans,cnt);
}
else
{
x=d[i].c;
cnt=;
}
}
cout <<ans+cnts<<endl;
return ;
}
F1:被D心态搞崩,然后F1比赛的时候读不懂题,Your task is to find any spanning tree of this graph such that the maximum degree over all vertices is maximum possible这句话半天理解不了,下来问,才知道直接简单bfs就可以了,然后忘了bfs咋写,写了好长时间(太菜了)
#include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <stack>
#include <queue>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
const double Pi=3.14159265358979323846;
typedef long long ll;
const int MAXN=+;
const int dx[]={,,,,-};
const int dy[]={,-,,,};
const int INF = 0x3f3f3f3f;
const int NINF = 0xc0c0c0c0;
const ll mod=1e9+;
int dis[MAXN];
vector <int> G[MAXN]; void bfs(int M)
{
queue <int> Q;
Q.push(M);
dis[M]=;
while(!Q.empty())
{
int F=Q.front();Q.pop(); for(int i=;i<G[F].size();i++)
{
if(dis[G[F][i]]==)
{
printf("%d %d\n",F,G[F][i]);
Q.push(G[F][i]);
dis[G[F][i]]=;
}
}
}
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
int a,b;scanf("%d%d",&a,&b);
G[a].push_back(b);
G[b].push_back(a);
}
int Msize=;int M=;
for(int i=;i<=n;i++)
{
if(G[i].size()>Msize)
{
Msize=G[i].size();
M=i;
}
}
bfs(M);
return ;
}
现在还是一碰见图和树的问题就发怵。
E:还没写出来
Codeforces Round #544 (Div. 3) (补)的更多相关文章
- Codeforces Round #544 (Div. 3) 题解
Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization 题目链接:https://codeforces.com/contest/113 ...
- Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring
D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- 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 ...
- Codeforces Round #544 (Div. 3) Editorial C. Balanced Team
http://codeforces.com/contest/1133/problem/Ctime limit per test 2 secondsmemory limit per test 256 m ...
- D. Zero Quantity Maximization ( Codeforces Round #544 (Div. 3) )
题目链接 参考题解 题意: 给你 整形数组a 和 整形数组b ,要你c[i] = d * a[i] + b[i], 求 在c[i]=0的时候 相同的d的数量 最多能有几个. 思路: 1. 首先打开 ...
随机推荐
- 使用javassist进行动态编程
今天在研究dubbo时,发现一个新的知识点,可以使用javassist包进行动态编程,hibernate也使用该包进行编程.晚上百度了很多资料,将它的特性以代码的形式展现出来. package com ...
- Linux下使用systemctl命令
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...
- python 列表切片
列表切片是python语言独有的特征,大大方便了我们的编码. 首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数. insert,get,set 操作均可传入负数下 ...
- laravel中的数据库迁移
1.创建数据库迁移文件:生成数据库迁移文件,前面跟着时间戳: php artisan make:migration create_posts_table 创建数据库迁移文件:可以重命名数据表名: -- ...
- 求1+2+……+n的和
题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). class Solution { public ...
- Java使用wait() notify()方法操作共享资源
Java多个线程共享资源: 1)wait().notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写. 2)调用某个对象的wait()方法能让当前线程阻塞,并且当前线 ...
- 【资料搜集】Python学习
python学习手册 | 演道网 http://dev.go2live.cn/python/python%e5%ad%a6%e4%b9%a0%e6%89%8b%e5%86%8c.html
- nginx在linux上的安装与配置详解(一)
Nginx的安装与配置详解 (1)nginx简介 nginx概念: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like ...
- mysql 内置函数和sql server 内置函数的区别
以下函数均没有对参数做说明,使用的使用需要了解其参数内容 数据库 sql server mysql oracle 举例 获得当前系统时间 getdate() now() sysdate 注意不是函数 ...
- Java获取后台数据,动态生成多行多列复选框
本例目标: 获取后台数据集合,将集合的某个字段,比如:姓名,以复选框形式显示在HTML页面 应用场景: 获取数据库的人员姓名,将其显示在页面,供多项选择 效果如下: 一.后台 查询数据库,返回List ...