这场CF水题都非常的水,D题如果对树、DFS相关比较熟练的话也不难。比赛时前三题很快就过了,可是因为毕竟经验还是太少,D题就卡住了。比赛之后A题还因为没理解对题意fst了……(为什么这次就没人来hack我orz)。唉,本来发挥好一些这次上蓝名是很有可能的,只能等待下一次了。Z神这次顺利AK,差距还是太大,虽然有初学为理由,但这个烤漆之后就会到来的假期还是要好好加油了,要学要练的东西实在是太多了。

  A题:

  如果起点和终点是一家航空公司,那么显然0元就可到达。如果不是,0和1一定有一个分界处,先做起点的航空公司到分界处,再转1次不同航空公司的飞机,花去1元,之后再免费到终点即可。(理解错题意真是致命啊,以后再也不那么着急了……)

  参考代码:

 #include<stdio.h>
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int n,st,en;
char a[];
int main()
{
scanf("%d%d%d",&n,&st,&en);
scanf("%s",a+);
if(a[st]==a[en])
printf("0\n");
else
{
printf("1\n");
}
return ;
}

  B题

  第i个数是多少,就是i的质因数分解中2的幂次是多少。当然也可以递归做。(CF当天晚上C++上机考的就是位运算orz)

  

 #include<stdio.h>
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int main()
{
ll n,x;
scanf("%I64d %I64d",&n,&x);
ll an=;
while(!(x&))
{
x>>=;
an++;
}
printf("%I64d\n",an);
return ;
}

  C题

  这熟悉的数竞感觉……一看就知道一定是一个构造。2/n=1/n+1/(n+1)+1/n*(n+1)即可,(赛后看同学的代码,发现还真有暴力过的,给跪)。需要注意的是n=1时没有符合题意的解。

  

 #include<stdio.h>
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int main()
{
ll n;
scanf("%I64d",&n);
if(n==)
{
printf("-1\n");
return ;
}
printf("%I64d %I64d %I64d\n",n,n+,n*(n+));
return ;
}

  D题(重要!需要回顾)

  因为从来没做过类似的树的问题,看到这道题时又有一种两个月前刚参加CF比赛时没见过pair的绝望。知道大概要怎样,可是因为对相关套路的不熟悉连给出的每一组树的节点怎样区分父节点和子节点都不知道……

  建立vector后缀数组存储每个可能的父子结点关系。dfs遍历,确定整个树的父子关系,并且后序遍历,每次子树返回的时候就更新当前节点最大值,要输出的答案也在每个过程中进行更新。

  

 #include<stdio.h>
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int shu=2e5+;
const ll chu=2e9+;
int n,st[shu];
ll an=chu;
ll da[shu];
vector <int> re[shu];
ll dfs(int i,int fa)
{
priority_queue<ll> que;
int j;
ll hui=;
for(j=;j<re[i].size();j++)
{
int temp=re[i][j];
if(temp==fa)
continue;
ll a=dfs(temp,i);
da[i]=max(da[temp],da[i]);
que.push(da[temp]);
hui+=a;
}
hui+=st[i];
da[i]=max(da[i],hui);
if(que.size()>=)
{
ll oh=;
oh+=que.top();
que.pop();
oh+=que.top();
que.pop();
an=max(oh,an);
}
return hui;
}
int main()
{
scanf("%d",&n);
int i,tem,tarr;
for(i=;i<=n;i++)
{
scanf("%d",&st[i]);
da[i]=-chu;
}
for(i=;i<n-;i++)
{
scanf("%d %d",&tem,&tarr);
re[tem].push_back(tarr);
re[tarr].push_back(tem);
}
an=-chu;
dfs(,);
if(an==-chu)
printf("Impossible\n");
else
printf("%I64d\n",an);
return ;
}

  最近校赛还是烤漆,E题就先不补了。

  

Codeforces Round #384 (Div. 2) 解题报告的更多相关文章

  1. Codeforces Round #324 (Div. 2)解题报告

    ---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...

  2. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  3. Codeforces Round #380 (Div. 2) 解题报告

    第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...

  4. Codeforces Round #216 (Div. 2)解题报告

    又范低级错误! 只做了两题!一道还被HACK了,囧! A:看了很久!应该是到语文题: 代码:#include<iostream> #include<];    ,m2=;    ;i ...

  5. Codeforces Round #281 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...

  6. Codeforces Round #277 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/486 A题.Calculating Function 奇偶性判断,简单推导公式. #include<cstdio> ...

  7. Codeforces Round #276 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...

  8. Codeforces Round #350 (Div. 2)解题报告

    codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...

  9. Codeforces Round #479 (Div. 3)解题报告

    题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...

随机推荐

  1. ubantu14下vim的配置...

    日出江花红胜火,春来江水绿如蓝.---

  2. Java中的四舍五入

    经典案例分析:public class RoundTest {    public static void main(String[] args) {        System.err.printl ...

  3. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

  4. excel单元格内换行

    强制换行:将光标置于拟换行处,按ALT+Enter键,即可强行换行.

  5. Toad for Oracle Format Option

    FmtPlus.opt [Qp5FormatterOptions]  Version=252  AssignFavorWrapping=0  AssignAlignment=2  CaseAllowH ...

  6. [转]什么是SPI通信

    SPI:高速同步串行口.3-4线接口,收发独立.可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.是Motorola首先在其MC6 ...

  7. Grafana + Zabbix --- 部署分布式监控系统

    阅读目录: 1. 关闭防火墙 2. 安装Zabbix下载源 3. ZabbixClient  --- 安装zabbix-agent代理 4. ZabbixServer --- 安装zabbix-ser ...

  8. JFinal - scheduler 插件做定时任务

    我在项目中遇到一个需求:服务运行期间,数据库要定期去监测某表并且更新. 正好项目是使用 jfinal 做的,于是就用了 jfinal-scheduler 插件来解决(jfinal-scheduler ...

  9. CPU过高的排查方法

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...

  10. [linux] scp无密码拷贝

    源服务器为s,ip为111.111.111.112. 目标服务器为d, ip为111.111.111.111 1>在源服务器新建用户 test_s, useradd test_s -g user ...