高中运动会

最大公约数

【问题描述】

梦幻城市每年为全市高中生兴办一次运动会。为促使各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数皆相同。为增加比赛的竞争性,希望分成越多队越好。你的任务是由各校的人数决定最多可以分成的队数。

【输入】

第一行一个正整数 n ,代表学校的个数。

接下来 n 行,每行一个正整数,分别代表这 n 个学校的人数。

【输出】

最多可分成的队数。

【数据规模】

对于 100%的数据,n≤500,每个学校人数最多 10000。

【解题过程】

直接求所有数的 GCD。

 

智力游戏

枚举

【问题描述】

小华最近迷上了一个你小时候已经玩厌了的游戏:移火柴棒。他现在吵着要你陪她玩,你没办法,

只好写一个程序来完成这个工作了。

你被给出了一个火柴拼成的等式,比如下面这个,5+7=7:

它显然是不成立的,但是我们可以通过移动一个其中的火柴使得它成立。变成如下一个等式:

现在给出一个类似的等式,请问,最少移动多少根火柴可以使得它变成一个成立的等式?

每个数字的表示方法如下:我们用 7 根火柴表示每一个数字。火柴编号 0~6,如下图:

每一个数字都可以用对应的火柴组成的集合表示:

1:{2,5} or {1,4} 2:{0,2,3,4,6}

3:{0,2,3,5,6} 4:{1,2,3,5}

5:{0,1,3,5,6} 6:{0,1,3,4,5,6}

7:{0,2,5} 8:{0,1,2,3,4,5,6}

9:{0,1,2,3,5,6} 0:{0,1,2,4,5,6}

【输入】

输入有三个数字,分别表示上面的表达式中的从左到右的三个数字,每个数都在 0~999 之间。

【输出】

输出只需一个数,表示使等式成立最少需要移动的火柴数,不允许改变位数以及符号,不要制造 0

开头的数。

【输入样例】

5 7 7

【输出样例】

1

【解题过程】

一看数据范围二话不说就枚举了。

枚举出两个加数就能算出正确的和,然后拆解,打个表记录每个数字所需的火柴数,如果这里枚举出的两个加数以及和的总火柴数与题目给出的不相等就直接跳过。

然后计算至少需要移几根火柴才能从初始状态移到当前状态。打个表记录一个数字与另外一个数字在同一位置上的火柴数,比如 6 和 3 有四根火柴是在相同的位置上的。用总火柴数减去各个数对应的在各自位子上的火柴数之和即是最小移动步数。题目给出了不允许改变位数和符号的限制大大降低了难度。

但是中间细节错了后来查了好久才找到错。

第一次提交 70 分左右?反正没 AC。

 

周年纪念日

树型动规

【问题描述】

某中学校长打算举行建校 100 周年的晚会。学校的职员是分等级的,也就是说职员之间的上下级关系组成一棵以校长为树根的树。校长要亲自邀请一些职员参见晚会。同时校长亲自到场欢庆这个节日。职员用 1~n 之间的整数编号,人事处给出了每个职员的搞笑指数。如果一个人和他上司一起参加,那么便可能产生麻烦。为了使晚会的每个参加者都高兴,校长不会同时邀请某个职员和他的顶头上司。

你的任务是给出一个客人列表,使得客人的搞笑指数之和最大。

【输入】

第一行一个整数 n(1≤n≤6000)。

以下 n 行每行是相应编号职员的搞笑指数,该数的返回是[-128..127]。

然后是职员的关系树,每行格式是<x> <y>,意思是第 y 个职员是第 x 个职员的顶头上司。输入以 0 0 结束。

【输出】

最大的搞笑指数之和。

【输入样例】

7

1

1

1

1

1

1

1

1 3

2 3

6 4

7 4

4 5

3 5

0 0

【输出样例】

5

【解题过程】

很典型的树型动规,用 f(i, 0) 表示 i 没有出席所能达到的最大和,f(i, 1) 表示 i 出席了所能达到的最大和,则

f(i, 1) = sum{ f(j, 0), i 是 j 的直接上司 }

f(i, 0) = sum{ f(i, 0)+f(i, 1), i 是 j 的直接上司 }

很纠结的地方是校长到底有没有在这棵树中。不过这不是重点,NOIP 的题目不会这么坑。

08day1的更多相关文章

  1. 二模08day1解题报告

    T1.高中运动会(match) N个数的最大公约数. gcd不解释. T2.智力游戏 火柴棒等式形如a+b=c,现在给出啊a,b,c求使等式成立的最小的移动次数. 火柴棒表示数字不用解释了吧,在此提醒 ...

随机推荐

  1. POJ 1317

    #include <iostream> #include <string> using namespace std; char p_code[] = {'_','a','b', ...

  2. group_concat

    分割字符串 group_concat(a.EvidencesID separator ',') as EvidencesID #在MySQL配置文件(my.ini)中默认无该配置项,使用默认值时,值为 ...

  3. 基础DOM和CSS操作(二)

    元素样式操作 元素样式操作包括了直接设置CSS样式.增加CSS类别.类别切换.删除类别这几种操作方法.而在整个jQuery使用频率上来看,CSS样式的操作也是极高的,所以需要重点掌握. CSS操作方法 ...

  4. postgresql数据库的yum安装方法

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  5. 继电器Relay:ZZR08

    继电器常识: 继电器有三个接线柱:常开(NO),常闭(NC),接地(C) 如果连接的时间长,偶尔需要断电, 那么接NC 和 C, 这样继电器set on 时为断电.除此之外,继电器还可以控制按键,以及 ...

  6. POJ3252——Round Number(组合数学)

    Round Numbers DescriptionThe cows, as you know, have no fingers or thumbs and thus are unable to pla ...

  7. JSP文件下载及出现getOutputStream() has already been called for this response的解决方法

    JSP文件下载及出现getOutputStream() has already been called for this response的解决方法 http://iamin.blogdriver.c ...

  8. MSBuild和Jenkins搭建持续集成环境

    http://www.2cto.com/os/201409/334323.html http://my.oschina.net/anxuyong/blog/353897 http://www.cnbl ...

  9. Mongodb数据操作基础

    var mongodb = require('mongodb'); var server = new mongodb.Server('localhost', 27017, {auto_reconnec ...

  10. SGU 149 Computer Network 树DP/求每个节点最远端长度

    一个比较经典的题型,两次DFS求树上每个点的最远端距离. 参考这里:http://hi.baidu.com/oi_pkqs90/item/914e951c41e7d0ccbf904252 dp[i][ ...