翻车!翻车!

codeforces782A

A题:

水。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int num[100010];
int main()
{
int n,x;
memset(num,0,sizeof(num));
scanf("%d",&n);
int sum=0,ans=0;
for(int i=1;i<=2*n;i++)
{
scanf("%d",&x);
if(!num[x])
{
num[x]++;
sum++;
}
else
{
sum--;
num[x]--;
}
ans=max(ans,sum);
}
printf("%d\n",ans);
return 0;
}

codeforces782B

B题:

三分,最短时间的位置位于最大位置和最小位置区间内,而时间是咋算的?所有点到位置的max,so两边扩散,肯定是越来越大,凹形曲线,三分求极值。

PS:注意精度1e-6.

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const double eps=1e-6;
const int N=6e4+10;
struct asd{
double x,v;
}e[N];
int n;
bool cmp(asd a,asd b)
{
if(a.x<b.x) return true;
return false;
} double fun(double x)
{
double ans=0.0;
for(int i=1;i<=n;i++)
if(ans<(fabs(e[i].x-x)/e[i].v))
ans=(fabs(e[i].x-x)/e[i].v);
return ans;
} int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf",&e[i].x);
for(int i=1;i<=n;i++)
scanf("%lf",&e[i].v);
sort(e+1,e+n+1,cmp);
double Left=e[1].x,Right=e[n].x;
double mid, midmid;
double mid_value, midmid_value;
while (Left +eps < Right)
{
mid = (Left + Right) / 2;
midmid = (mid + Right) / 2;
mid_value = fun(mid);
midmid_value = fun(midmid);
///求最大值改成>= 最小值改成<=
if (mid_value <= midmid_value) Right = midmid;
else Left = mid;
}
double ans=fun(Left);
printf("%.9lf\n",ans);
return 0;
}

codeforces782C

C题:

利用BFS可以轻松处理。

BFS是一层一层的,对于每个结点的儿子结点,都会有一些可以使用的颜色,except(他父亲的颜色,他父亲的父亲的颜色)。

外送两个案例:

7
1 2
3 2
2 4
4 5
5 6
5 7 7
1 2
2 3
2 4
2 5
5 6
5 7

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL; const int N=4e5+10; struct asd{
int to;
int next;
}e[N];
int head[N],tol;
bool vis[N];
int col[N],pre[N],in[N],t; void BFS(int pos)
{
queue<int>q;
memset(vis,0,sizeof(vis));
pre[0]=pre[pos]=0;
vis[pos]=true;
col[pos]=1;
t=1;
q.push(pos);
while(!q.empty())
{
int u=q.front();q.pop();
int tmp=t;
int num=t;
for(int i=head[u];~i;i=e[i].next)
{
int v=e[i].to;
if(vis[v]) continue;
q.push(v);
pre[v]=u;
vis[v]=true;
while(num&&(num==col[u]||num==col[pre[u]]))
num--;
if(num)
col[v]=num--;
else
col[v]=++tmp;
}
t=tmp;
}
}
void init()
{
tol=0;
memset(head,-1,sizeof(head));
memset(in,0,sizeof(in));
}
void add(int u,int v)
{
e[tol].to=v;
e[tol].next=head[u];
head[u]=tol++;
} int main()
{
int n,u,v;
scanf("%d",&n);
init();
for(int i=2;i<=n;i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
in[u]++;
in[v]++;
}
int pos;
for(int i=1;i<=n;i++)
{
if(in[i]==1)
{
pos=i;
break;
}
}
BFS(pos);
int ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,col[i]);
printf("%d\n",ans);
for(int i=1;i<=n;i++)
printf("%d ",col[i]);
return 0;
}

Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)【A,B,C】的更多相关文章

  1. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)

    Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) 说一点东西: 昨天晚上$9:05$开始太不好了,我在学校学校$9:40$放 ...

  2. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D. Innokenty and a Football League

    地址:http://codeforces.com/contest/782/problem/D 题目: D. Innokenty and a Football League time limit per ...

  3. 树的性质和dfs的性质 Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) E

    http://codeforces.com/contest/782/problem/E 题目大意: 有n个节点,m条边,k个人,k个人中每个人都可以从任意起点开始走(2*n)/k步,且这个步数是向上取 ...

  4. 2-sat Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D

    http://codeforces.com/contest/782/problem/D 题意: 每个队有两种队名,问有没有满足以下两个条件的命名方法: ①任意两个队的名字不相同. ②若某个队 A 选用 ...

  5. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) E Underground Lab

    地址:http://codeforces.com/contest/782/problem/E 题目: E. Underground Lab time limit per test 1 second m ...

  6. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) C Andryusha and Colored Balloons

    地址:http://codeforces.com/contest/782/problem/C 题目: C. Andryusha and Colored Balloons time limit per ...

  7. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) B. The Meeting Place Cannot Be Changed

    地址:http://codeforces.com/contest/782/problem/B 题目: B. The Meeting Place Cannot Be Changed time limit ...

  8. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) A. Andryusha and Socks

    地址:http://codeforces.com/contest/782/problem/A 题目: A. Andryusha and Socks time limit per test 2 seco ...

  9. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)A模拟 B三分 C dfs D map

    A. Andryusha and Socks time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

随机推荐

  1. OSGI简介(转)

    原文地址 目前,业内关于OSGI技术的学习资源或者技术文档还是很少的.我在某宝网搜索了一下“OSGI”的书籍,结果倒是有,但是种类少的可怜,而且几乎没有人购买.因为工作的原因我需要学习OSGI,所以我 ...

  2. 设置ubuntu默认输入python进入python3

    执行下面两条命令 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update- ...

  3. 顽石系列:Java技术面试

    顽石系列:Java技术面试 JDBC相关 1.Statement与PreparedStatement的区 别,什什么是SQL注⼊入,如何防⽌止SQL注⼊? PreparedStatement支持动态设 ...

  4. POJ - 3278 Catch That Cow 【BFS】

    题目链接 http://poj.org/problem?id=3278 题意 给出两个数字 N K 每次 都可以用三个操作 + 1 - 1 * 2 求 最少的操作次数 使得 N 变成 K 思路 BFS ...

  5. 一次react滚动列表的实践---兼容ios安卓

    一.背景 近期项目改版,对原有的h5页面进行了重新设计,数据呈现变成了瀑布流.希望新版兼容ios和安卓两端的情况下,无限制的刷新加载数据.大致效果如下: 整个页面分4部分: 顶部导航 步数状态卡片 用 ...

  6. 《机器学习实战》学习笔记第七章 —— AdaBoost元算法

    主要内容: 一.提升方法与AdaBoost算法的简介 二.AdaBoost算法 三.代码解释 一.提升方法与AdaBoost算法的简介 1.提升方法:从弱学习算法出发,反复学习,得到一系列弱分类器(又 ...

  7. CentOS7 网络管理工具nmcli

    今天帮别人调试虚拟机的网络问题(CentOS 7系统),习惯性直接改/etc/sysconfig/network-scripts/ifcfg-xxx配置文件,但是不知道为什么重启network后静态i ...

  8. mybatis进行分页,使用limit

    这里记录两个思路: 首先是写一个不能执行的代码. <select id="query" parameterType="map" resultType=&q ...

  9. poj-2336 Ferry Loading II(dp)

    题目链接: Ferry Loading II Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3946   Accepted: ...

  10. 枚举类型的使用方法enum

    一.枚举类型的使用方法 一般的定义方式如下: enum enum_type_name { ENUM_CONST_1, ENUM_CONST_2, ... ENUM_CONST_n } enum_var ...