暑假测试 Day 3

来源:互联网 发布:网络短信收费版 编辑:程序博客网 时间:2024/06/03 13:36


问题 A: 寻找羔羊

时间限制: 1 Sec  内存限制: 256 MB
提交: 191  解决: 103
[提交][状态][讨论版]

题目描述

给定一个由小写字母组成的字符串,寻找包含“agnus”(羔羊)的子串的个数。注意:当且仅当两个子串的起始位置和终点不同时,这两个子串属于不同的子串。

输入

只有一个字符串,表示题中所述的字符串。

输出

仅一个数字,表示满足题意的子串个数。

样例输入

agnusbgnus

样例输出

6

提示

【样例解释】

    6个子串分别是:agnus、agnusb、agnusbg、agnusbgn、agnusbgnu、agnusbgnus。

 

【数据规模和约定】

对于 40%的数据,字符串长度<=1000

对于 100%的数据,字符串长度<=30000




~~:
竟然做出来了……好吧其实还是比较简单的计数问题。
首先可以枚举到每一个agnus的每个位置,
然后根据左右剩余字母的数量,可以直接计算种数。
比如左边x个,右边y个,可以组成x*y种子串。
但是还有一个去重的问题……其实也比较简单,
只要在当前一个agnus判断的时候,左边的x个注意除去前一个agnus的最左边之左的就好了。
100分~~


问题 B: 统计损失

时间限制: 1 Sec  内存限制:512 MB
提交: 313  解决: 110
[提交][状态][讨论版]

题目描述

SJY有一天被LLT紧急召去计算一些可能的损失。LLT元首管理的SHB国的交通形成了一棵树,现在将会出现一颗陨石砸在SHB国中,并且陨石砸毁的必定是SHB国构成的交通树上的一条路径。SHB国的损失可表示为被砸毁的路径上的所有城市价值之积。现在还暂时无法确定陨石的掉落路线,所以LLT元首希望SJY能够告诉他SHB国在受到每一种砸毁方式后会受到的损失之和模10086之后的值。注意:单独一个节点也被认为是合法的路径。

输入

第1行一个数n,表示城市数。
第2行n个数,第i个数表示第i个城市的价值。
第3到n+1行,每行两个数u,v,表示城市u,v之间有一条道路。

输出

包含一个数,表示SHB国将受到的损失之和。

样例输入

5
7 6 6 1 1
1 2
2 3
2 4
1 5

样例输出

778

提示

【数据规模和约定】
n<=100
n<=3000
n<=100000




~~:
竟然也A了……开心……
首先观察题目发现是个计数问题。。
如果枚举每个点作为线段的一端肯定是要T的,
可以考虑如何切分解和合并解,
来看看能不能树形DP或者直接一边DFS。

假设dp[u]是经过点u的线段的总值(竟然有点树分治的感觉),
那么其实u的每一个儿子都可以递归下去求解,
然后合并的时候,
可以看到直接把u的值乘上儿子求解出的值累计起来就好了,
数学可以简单用分配律证明的……
然后dp[u]可以随之更新了,
接着同时统计一下答案即可。。

差点弄树分治去了,,分治个鬼……

幸好最后1h的时候A了。。




问题 C: 简单题

时间限制: 1 Sec  内存限制:512 MB
提交: 262  解决: 77
[提交][状态][讨论版]

题目描述

    dzy 手上有一张n 个点m 条边的联通无向图,仙人掌是一张每条边最多在一个简单环内的联通无向图。他想求这个无向图的生成仙人掌中最多有多少条边。
    但是dzy 觉得这个问题太简单了,于是他定义了“美丽的生成仙人掌”,即在一个生成仙人掌中如果满足对于任意编号为i,j(i < j) 的两点,存在一条它们之间的简单路径上面有j-i+1 个点,则这个仙人掌是美丽的。
他现在想要知道这张图的美丽的生成仙人掌中最多有多少条边,你能帮帮他吗?

输入

第一行两个整数n,m。接下来m 行每行两个整数ui,vi,表示这两个点之间有一条无向边。保证图中没有自环。

输出

仅一行一个整数表示答案。

样例输入

2 1
1 2

样例输出

1

提示

【数据规模和约定】 

    对于10% 的数据,n <=10。

    对于30% 的数据,n <=10^3。

    对于100% 的数据,n <=10^5,m <= 2n。



~~:
这题最后只拿了10分……
首先扫雷了30min……接下来开始思考这题。。
结果最后1min的时候来不及了,,只好骗个分。

后来发现和正解一步之遥。
似乎是可以dp和求最大独立集的。。。似乎这么说的把?
反正我是这么想的。
首先题目要求的话你要找出一条最长的连续编号的链。
可以看到每条边连接两个点x和y,
哦对了还有就是原图是DAG(有向无环图),
我们把连接的点看作线段……
然后求最大不重叠覆盖个数。
就这样贪心算法ok了?
然而我的方法有一点点不一样……我很奇怪啊。。

具体的证明还没怎么懂……明天瞅瞅。



!!:
总分210
排名11.。。
前面的9个都是AK的。。。
后面的好多都是200的……
感觉菜得一匹……

没办法,,,目前算法题对我来说真的难。。
好像天生就喜欢数据结构一样……




原创粉丝点击