这场div2可以说是我见过的比较水的一场吧。基本都是一眼题。

比赛地址http://acm.bnu.edu.cn/bnuoj/contest_show.php?cid=1836

题号是237A-237E

A题:Free Cash

这题不能多说。就是每个分钟覆盖一下,算出最大就行。

B题:Young Table

题目中有一个很重要的条件是,操作的个数不大于这些数的个数就行了。

那么很明显的一个想法就是,第一个位置放1,第二个位置放2,依次类推,最后肯定能满足条件。

复杂度应该是n^2的。

C题:Primes on Interval

首先看到数据范围是10^6

然后看到求最小。

很显然的一个想法就是二分判断可行性了。

二分L的大小,带入数组中判定。

不过有一点需要注意

就是算某个区间[x,y]有多少个素数,你只要事先记录好[1,x - 1], [1, y]区间内的素数,然后一减就行了

D题:T-decomposition

目测大家都没看题。 前边都在墨迹

题目大意就是

给了一颗树s,然后让你构造一个树叫t,

t这颗树比较特别,就是这颗树上的结点都是由树s上的若干结点构成的集合。 并且t树上所有结点的并集是s树的结点的全集

并且,如果s上有边(a,b)那么t树上必须有某个结点,包含a和b这两个点。

最后一条,如果t树上有两个结点x,y,若x中包含了s树中的结点a,且y中包含了s树中的结点a,那么t树中,x到y的路径上的结点都必须包含s树中结点a

然后规定某个结点的基数就是它所包含的s树结点的个数,然后整个树的基数就是所有结点中最大的基数

现在就想让树的基数最小。

最后输出的是t树中每个结点包含了哪些s树中结点,以及t树中的边

这个需要手画一下。

然后不难得知,其实只要把s树中的每条边得两个结点,作为t树中的新结点即可

就是一个边对应一个结点

然后连接的方法类似于多叉树转换二叉树

我们先把每个边对应成一个结点。

我刚开始的想法是把根节点的儿子们与根组成的边对应的结点依次连接起来,然后其他结点的(儿子们与其父亲的边对应的结点)都跟(父亲结点与父亲的父亲结点组成的边对应的结点)相连

后来发现,只需要:

每个结点的儿子们与其父亲组成的边所对应的结点依次相连,(大儿子连二儿子,二儿子连三儿子)

大儿子与父亲组成的边对应的结点还要与(父亲结点与父亲的父亲结点组成的边对应的结点)相连

当然如果往上没有父节点了就不用连了。

然后就很能满足题意了

E题:Build String

题目大意也比较清楚

就是给你一个目标字符串。

然后给你n个准备好的字符串。

然后每次操作,你可以从这n个字符串中任意挑选一个字符,然后从对应的字符串中删掉这个字符,把这个字符写在纸上。

循环操作直至你的纸上构成了目标字符串

限制就是每个字符串都有花费,第i个字符串取一个字符的花费是i,然后能取得次数是分别有限制的,为ai

看完之后就能发现。。 这不就是最小费用最大流

其中最大流就是目标字符串的长度

我们这样建图:

一个超级源点,一个超级汇点,

中间分为两层,

第一层有n个点,代表了100个字符串

第二层26个点,26个字母

源点向每个第一层的点连边,花费为0,流量限制为该字符串能取的次数

然后对第一层的每个点,对应的字符串,计算每个字符的个数,然后与相应的字母连边,流量限制是字母的个数,每个流量的花费是(若是第i个字符串就是i)

最后每个第二层的点向源点连边

流量限制分别为目标字符串中该字母的个数,花费为0

然后跑一遍最小费用最大流,检查流量是否是目标字符串的长度,如果是,表示可以构成目标字符串

13年7月13日CF练习 Codeforces Round #147 (Div. 2)的更多相关文章

  1. cf 20190307 Codeforces Round #543 (Div. 2, based on Technocup 2019 Final Round)

    B. Mike and Children time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  2. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  3. 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)

    比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...

  4. 【打CF,学算法——三星级】Codeforces Round #313 (Div. 2) C. Gerald's Hexagon

    [CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/C 题面: C. Gerald's Hexagon time limit per tes ...

  5. CF&&CC百套计划3 Codeforces Round #204 (Div. 1) B. Jeff and Furik

    http://codeforces.com/contest/351/problem/B 题意: 给出一个n的排列 第一个人任选两个相邻数交换位置 第二个人有一半的概率交换相邻的第一个数>第二个数 ...

  6. [CF百场计划]#2 Codeforces Round #618 (Div. 2)

    A. Non-zero Description: Guy-Manuel and Thomas have an array \(a\) of \(n\) integers [\(a_1, a_2, \d ...

  7. CF Codeforces Round #231 (Div. 2)

    http://codeforces.com/contest/394 话说这次CF做的超级不爽,A题一开始交过了,我就没再管,B题还没看完呢,就死困死困的,后来觉得B题枚举一下估计能行,当时是觉得可以从 ...

  8. 【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)

    [CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/B 题面: B. Gerald is into Art time limit per t ...

  9. 【打CF,学算法——一星级】Codeforces Round #313 (Div. 2) A. Currency System in Geraldion

    [CF简单介绍] 提交链接:http://codeforces.com/contest/560/problem/A 题面: A. Currency System in Geraldion time l ...

随机推荐

  1. Google C++ style guide——命名约定

    1.通过命名规则 函数命名.变量命名.文件命名应具有描写叙述性. 类型和变量应该是名词,函数名能够用"命令性"动词. 2.文件命名 文件名称所有小写,能够包括下划线(_)或者断线( ...

  2. MFC:重绘Button,定制CButton,自画CPngButton,求赐教(各种bug包括性能bug)谢谢谢谢

    [1.]CPngButton.h(资源是最后图片) #pragma once #include<atlimage.h> #define PNUM 19 #define PLAYTIME 1 ...

  3. 在VC++中使用Tab Control控件

    系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用 查阅MSDN文档,对于创建T ...

  4. AVL树的插入删除查找算法实现和分析-1

    至于什么是AVL树和AVL树的一些概念问题在这里就不多说了,下面是我写的代码,里面的注释非常详细地说明了实现的思想和方法. 因为在操作时真正需要的是子树高度的差,所以这里采用-1,0,1来表示左子树和 ...

  5. C++基础学习笔记----第十四课(new和malloc的区别、单例模式等深入)

    本节主要讲new关键字和malloc函数的差别,编译器对构造函数调用的实质,单例模式的实现等. new和malloc的差别 1.malloc和free是C语言的库函数,以字节为单位申请堆空间.new和 ...

  6. QT学习小技巧

    原地址:http://blog.csdn.net/ykm0722/article/details/6947250 转载: 分享在比赛中写代码时,发现的几个对写程序很有用的小段代码,虽小但是在我的软件中 ...

  7. 单选按钮、复选按钮——axure线框图部件库介绍

    有时候发现这做事情坚持下来是一件很不容易的,写教程也一样,不过听到很多朋友对我说 这个全部是图片的教程 对他们入门帮助很多,我就想想 在坚持坚持把基础部分先完善了! 1. 简单的问卷调查: 您的性别? ...

  8. ACM POJ 2192 Zipper

    题目大意:输入字符串a,b,c 要求推断c是否有a,b中的个字符保持原有顺序组合而成. 算法思想: DP 用dp[i][j]表示a的前0~i-1共i个字符和b的前0~j-1共j个字符是否构成c[i+j ...

  9. 在WEB工程的web层中的编程技巧

    本篇以看传智播客方立勋老师的<JDBC入门>之<实现客户关系管理案例>视频有感,从中提取方老师在设计管理系统的简单案例中对自己比较有用的部分,以便日后在开发过程中希望能有所帮助 ...

  10. 进程、线程、轻量级进程、协程和go中的Goroutine

    进程.线程.轻量级进程.协程和go中的Goroutine 那些事儿电话面试被问到go的协程,曾经的军伟也问到过我协程.虽然用python时候在Eurasia和eventlet里了解过协程,但自己对协程 ...