Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)【A,B,C】
翻车!翻车!
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】的更多相关文章
- Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)
Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) 说一点东西: 昨天晚上$9:05$开始太不好了,我在学校学校$9:40$放 ...
- 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 ...
- 树的性质和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步,且这个步数是向上取 ...
- 2-sat Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D
http://codeforces.com/contest/782/problem/D 题意: 每个队有两种队名,问有没有满足以下两个条件的命名方法: ①任意两个队的名字不相同. ②若某个队 A 选用 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
随机推荐
- 【题解】quake
[题解]\(quake\) 题目大意 我们共有报酬\(f\)元,一条边有它的价值\(w_i\),有它的建造时间\(t_i\).要求建一些边,生成一颗树.求最大的利润率. 数据范围 \(n\le 400 ...
- testng ITestListener使用
ITestListener适用场景 当使用testng执行测试时,我们常会想在某个阶段做一些特别的处理,比如:测试成功结束后,测试失败后,跳过某个脚本后,全部脚本执行完毕后.要想达成这个目标,我们需要 ...
- 【栈】日志分析(BSOJ2981)
Description M海运公司最近要对旗下仓库的货物进出情况进行统计.目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志.该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装 ...
- MSSQL2005外网IP的1433端口开启方法
打开SQL Server Configuration Manager,在SQL server配置管理器展开SQL server 2005网络配置-->SQLEXPRESS 的协议-->双击 ...
- 高通MSM8255 GPS 调试分析&&Android系统之Broadcom GPS 移植【转】
本文转载自:http://blog.csdn.net/gabbzang/article/details/12063031 http://blog.csdn.NET/dwyane_zhang/artic ...
- WCF异常处理
[读书笔记] 在进行分布式应用的异常处理时需要解决和考虑的基本要素: 异常的封装:服务端抛出的异常如何序列化传递到客户端 敏感信息的屏蔽:抛出的异常往往包含一些敏感的信息,直接将服务操作执行过程抛出的 ...
- Linux-Yum服务器搭建
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...
- tensorflow实现svm iris二分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)
iris二分类 # Linear Support Vector Machine: Soft Margin # ---------------------------------- # # This f ...
- C#SocketAsyncEventArgs实现高效能多并发TCPSocket通信 (服务器实现)
http://freshflower.iteye.com/blog/2285272 想着当初到处找不到相关资料来实现.net的Socket通信的痛苦与心酸, 于是将自己写的代码公布给大家, 让大家少走 ...
- [acm]HDOJ 2673 shǎ崽 OrOrOrOrz
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2673 拍两次序,交替输出 #include<iostream> #include< ...