这场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. Hibernate(开放源代码的对象关系映射框架)

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

  2. 【leetcode❤python】 278. First Bad Version

    #-*- coding: UTF-8 -*-# The isBadVersion API is already defined for you.# @param version, an integer ...

  3. JAVA窗口程序实例一

    package 甲; import java.awt.Dimension; import java.text.SimpleDateFormat; import java.util.Calendar; ...

  4. Attribute

    Attribute介绍 咱们来说Attribute,他是一个类,所以自定义的Attribute都是继承自System.Attribute,一般命名的时候都是以Attribute结尾.在使用的时候我们可 ...

  5. html,css命名规范 (转)

    HTML+CSS命名规范总结 1.HTML部分 1.1添加必须的utf-8的字符集,并且使用HTML5的简洁 方式: <meta charset="utf-8"> 1. ...

  6. C#返回时间格式转换成 js 字符串

    在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有 ...

  7. 插件开发--BE插件开发

    U9的插件主要分为3种,即(1)BE插件(2)UI插件(3)BP/SV插件 1.新建类库解决方案 2.新建插件类,并引用以下dll,UBF安装目录U9.VOB.Product.UBF\UBFStudi ...

  8. 学习 ---- JavaScript 高级设计程序 第三章(数据类型)

                                    3.4 数据类型 基本数据类型:Undefined.Null.Boolean.Number.String 复杂数据类型:Object 3 ...

  9. webpack和gulp的区别

    Gulp应该和Grunt比较,他们的区别我就不说了,说说用处吧.Gulp / Grunt 是一种工具,能够优化前端工作流程.比如自动刷新页面.combo.压缩css.js.编译less等等.简单来说, ...

  10. java aes_cbc_256 加密解密

    在之前我们在openssl上和ios上分别测试了 AES256位cbc模式的加密和解密 今天用java提供的api来测试一下:进而确定一下在PC,iOS,安卓上三个平台下的加密解密数据: 1. 首先通 ...