Codeforces Beta Round #24 ABC

做过TC的比赛感觉上了相对来说,CodeForces的比赛应该会简单一些,不过很可惜,那晚第三题并没有拍出来,可能是时间不够了,卡在第一题上太久,有点悲剧。。。。

 

A.Rind Road

 

这题之前把它看成了图论的题目,没有看清题意,导致到了比赛前半个钟头才写出来,其实很简单,题意大概是说,有n个城市和n条单行道,所有的城市通过单行道连接成了一个环,每个单行道都有一个权值c,如果要将单行道改个方向,就要花费c的价钱,现在我们的任务就是花费最小的价钱把n条单行道方向变成同向。

我的方法是将城市看成结点,单行道看成有向边,建立一个图,由于n<=100,可以利用邻接矩阵来存储,最后从任意一个点出发,正反地跑两次DFS,如果遇到权值为负的边(边的方向和遍历的方向相反),则把费用加c。最后输出两个费用的较小值。

后来想了想,可以只跑一次DFS,然后把权值总和减去第一次的值就是我们第二次DFS得到的值。

 

我原版的代码。

 

 

 

B.F1 Champions

 

这题是我过的最快的一题,简单的排序,手写比较函数就可以了,题目大意是说,F1比赛的冠军判断标准有两种,第一种判断积分大小,当积分相等的时候判断获得第一名的次数,还相等的话,判断获得第二的次数,以此类推;第二种判断获得第一名的次数,相等,则判断积分大小,还相等的话和第一种一样,依次比较第二名、第三名。。。

 

写两个函数比较,分别进行两次排序,输出第一名即可。

 

 

C.Sequence of Point

 

这题比较简单,比赛的时候写完代码测试数据没过,也没时间去改,就放弃了,将题意理清之后的到一些公式:

 

这样将全部式子加起来,就可以得到完整的公式,由于Ai有周期,我们可以将其取模2n,然后进行计算,为了计算方便,我重载了运算符,封装了一个点的结构体,其实算是向量了。。。

注意题目给的j奇数偶数的时候M0前面的符号不同

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值