长沙集训day11

      听说今天开学了???

    然而我还在长沙,就剩2天了。下星期焫鷄就撤了,会去上上文化课。 

    进入正题,今天的题。。。。。。。。。。无语了。。。

    t1:

NOIP 模拟赛
yyc
题目概述
题目名称 打一局吗 字符串 哲学考验
源程序文件名 game.* str.* test.*
输入输出文件名 game.in/out str.in/out test.in/out
测试点数目 20 20 20
时间限制 1s 1s 1s
空间限制 256MB 512MB 256MB
编译选项 -O2 -lm -Wl,--stack=1000000000
一、打一局吗(game.*)
【题目描述】
Diaoyeye 作为健美先生,自然会受到很多人的挑战,nyx 便是他们中的一位。
nyx 具有自知之明,他知道 Diaoyeye 比他健美的多,和他刚正面显然不行,于是
要求 Diaoyeye 和他打牌。
nyx 制定的游戏规则是这样的:一副只有黑白两种颜色的牌,从背面看都是一样,
两个人轮流取牌堆顶的一张牌,如果谁先取到了黑色牌谁就获胜。同时 nyx 还请了
pupil 来捣乱,pupil 会在两个人取完牌后把牌堆顶的一张牌拿走,但是不会给 nyx 和
Diaoyeye,不论 pupil 这张牌是黑色牌还是白色牌,都把它作废。所以有可能 nyx 和
Diaoyeye 都没有抽到黑色牌,判为平局。
nyx 通过一些手段知道了牌堆里黑色牌和白色牌的数量,然后他想知道先手获胜概
率和后手获胜概率,然后考虑是不是快点投降。
【输入】
输入包括一行,两个正整数𝑎,𝑏,表示黑色牌和白色牌的数量。
【输出】
输出包括两个整数,用空格隔开,分别表示先手获胜的概率和后手获胜的概率。
【样例输入 1】
1 3
【样例输出 1】
502267905 753401857
【样例解释 1】
先手取到黑色牌,先手赢。
先手取到白色牌,后手取到黑色牌,后手赢。
先手取到白色牌,后手取到白色牌,pupil 取到白色牌,先手取到黑色牌,先手赢。
先手取到白色牌,后手取到白色牌,pupil 取到黑色牌,先手取到黑色牌,平局。
先手获胜的概率是 0.5,取模之后是 502267905。
后手获胜概率是 0.25,取模之后是 753401857。
【样例输入 2】
3 1
【样例输出 2】
251133953 753401857
【样例解释 2】
如果先手取到黑色牌则先手赢否则后手赢。
【数据范围与约定】
对于 20%的数据,1 <= 𝑎, 𝑏 <= 10。
对于 60%的数据,1 <= 𝑎, 𝑏 <= 2000。
对于 100%的数据,1 <= 𝑎, 𝑏 <= 10000。
【提示】
若𝑝是质数,则𝑎
𝑝−1 ≡ 1(𝑚𝑜𝑑 𝑝)。

    题目又是贼长,一看题一脸懵逼.....又是乘法逆元QAQ????

    数论懵逼QAQ。不知道该怎么搞。。。想着直接打表,打了一个小时瞬间爆炸,打挂了.............心态爆炸

    想了想还是先做第二题吧。

    正解DP。。。。DP学的贼差,会去把老刘的DP大乱炖搞了。

 

    t2:

    


二、字符串(str.*)
【题目描述】
Diaoyeye 正在研究字符串。nyx 向他问了一个问题:有一个字符串𝑆,其中不同子串的
个数。
Diaoyeye 显然直接秒掉。他现在想问一问 nyx ,有一个字符串𝑆,从中选出两个子串
𝐴,𝐵,求𝐴+𝐵可以构成的不同串的个数。Diaoyeye 还想知道,这么多个串中字典序最大的
那一个。nyx 把这个问题扔给了你。
【输入】
一个全由小写字母构成的字符串𝑆。
【输出】
第一行一个非负整数,表示两个子串𝐴+𝐵可以构成的不同串的个数。由于答案可能很
大,所以答案对 1004535809 取模。
第二行一个字符串,表示构成的串中字典序最大的。
【样例输入 1】
ab
【样例输出 1】
11
bb
【样例解释 1】
可以构成的串有:a,b,aa,aab,ab,aba,abab,abb,ba,bab,bb。共 11 种。
字典序最大的是 bb。
【样例输入 2】
abcaabccba
【样例输出 2】
1428
ccccba
【样例解释 2】
我有个绝妙的解释可惜这里写不下。
【数据范围与约定】
设𝑛 = |𝑆|。
对于 10%的数据,𝑛 <= 10。
对于 30%的数据,𝑛 <= 40。
另有 20%的数据,字符串由 1 个 a 字符和𝑛 − 1个 b 字符构成。
对于 100%的数据,𝑛 <= 2000。
【提示】
两个子串均可为空,但不同时为空

    字符串处理???先打了一个string的暴力,用到了substr()这个函数,发现时间贼慢,

 

    跑个n==10的数据用两秒,怕不是给我3个小时叫我把题A了??然后就用char代替string,

    发现好多了,至少10分的数据有了。以为最后要字典序输出,所以我就又学到一个新东西。 

      int cmp(string a,string b)

    {

        return a.compare(b)<0;

    }

    然后用sort拍一序就好了。

    第三题就没时间看了QAQ,第三题好像有40分的暴力分。。。。。  

    最后得分。。。。10分。。。我还是太菜了。。

posted @ 2017-08-13 21:42  列車員lcy  阅读(324)  评论(0编辑  收藏  举报