关闭

[agc011d]Half Reflector

前言推了一会儿发现很有趣哦。 没有看题解,可能做复杂了。题意一个长度为n的AB串。 每个位置实际是一个机器,机器有两种状态A和B。 每当一个球从左右某一端进入一个机器时,如果是A状态,就从同一端扔出去,否则从另一端扔出去。每次这样后机器会更改状态。 从最左端的机器左端扔一个球,最后一定会从最左或最右弹出。 问从最左端依次扔k个球,最后AB串长啥样。做法不妨先表示成01串,A是1。 从左端...
阅读(55) 评论(0)

[agc012d]Colorful Balls

前言做这题时感觉肯定是有一堆球允许重排的,要求找到每种颜色这些球的个数,其余球大概都是固定的,应该不复杂。 大概思路也确实就是这样。不过需要仔细讨论。 有一个很重要的性质当然是a和b如果都能和c对换,a和b也是可以对换的。题意n个球,每个都有颜色和重量。 对于两个同颜色的球,如果重量和在x以内可以交换位置。 对于两个不同颜色的球,如果重量和在y以内可以交换位置。 问颜色序列的方案数。做法一...
阅读(59) 评论(0)

[agc013c]Ants on a Circle

题目大意数轴蚂蚁问题升级成环。做法如果是数轴是经典问题: 两只蚂蚁相遇后掉头可以看做代替对方继续前行。 相对位置永远不变。 初始坐标刚好递增。 但是现在是环,注意到每当有蚂蚁跨过L-1或0就会使排名进行右/左移。 因此也很方便了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using na...
阅读(102) 评论(0)

健美猫

题目大意旋转序列s使得∑ni=1|si−i|\sum_{i=1}^n|s_i-i|最小做法大致思路是可以拆绝对值记录个数即贡献,顺着扫,对于一个位置有两个位置很关键。 (我都不知道我在说什么#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace...
阅读(112) 评论(0)

字符串游戏

题目大意题解瞎猜想和画图得到一个不好说的结论。 用诡异的单调栈做。#include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10; char a[max...
阅读(87) 评论(0)

[51nod1786]数据流中的算法 - 众数

题目描述数据流统计功能上线后,为51nod提升用户体验做出了很大的贡献。但是新问题随之而来,夹克老爷还想知道在一个窗口内,访问次数最多用户(即窗口内的众数)。如果有多个众数,取用户ID最小的一个。(窗口的意思是一个固定长度的区间!)(因为数据流是实时的、在线的,所以不允许使用离线算法^_^)做法一个map+一个set#include #include #incl...
阅读(289) 评论(0)

[CodeM初赛A轮]A

题解看懂题意题。#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; typedef double db; const int maxn=1000+10; db c...
阅读(218) 评论(0)

[CF480B]Long Jumps

题目描述懒得写模拟答案肯定小于等于2。 用个map,然后xjb讨论。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=100000+10; map ha,yl; int a[maxn];...
阅读(71) 评论(0)

[CF480A]Exams

题目描述懒得写贪心排序,a第一关键字b第二关键字。 然后优先选b,不行选a。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=5000+10; struct dong{ int a,b; } a[maxn]; int i,j...
阅读(69) 评论(0)

最长不下降子序列

题目大意a1=t0 an=(A*an-1^2+B*an+C)%D(n>1) 求该序列最长不下降子序列长度暴力n不是很大显然可以暴力。 n很大呢? 那就不断减循环节长度直至减到一个阈值内,再暴力。 正确性显然,只要阈值不要设太小。#include #include #include #define fo(i,a,b) for(i=a;i<=...
阅读(149) 评论(0)

幻想

题目描述做容易归纳出Si就是i在k进制数下各数位上的数的和再模k。 证明很简单。 我们只需要维护k进制分解即可。 用一个数组维护,每次把最低位+1,然后考虑进位。 均摊分析这是线性的: 设势函数为k-1的数量。 每次若进位了s个,那么势函数减少了s,并可能增加1,实际消耗时间为s+1,因此Ai<=s+1-s+1=2 均摊复杂度为O(1) 优化常数使用模优化即可#include<cst...
阅读(95) 评论(0)

[51nod月赛19D]石头剪刀布威力加强版

题目大意小A和小B在玩石头剪刀布,他们每个人写出一个序列。 小A写出了n个数。 小B写出了m个数。 其中0代表石头,1代表剪刀,2代表布 0>1,1>2,2>0。 他们总共进行k轮,第一轮选择第一个数字,后面每一轮两个人都选择序列的下一个数进行比赛(序列结尾的下一个位置在序列开头)。 问小A和小B每人赢了几局。瞎做例如我们现在统计A赢了几局。 假如Ai和Bj打,那么下一次轮到Ai时,B...
阅读(321) 评论(0)

图书列表

题目描述模拟这种题瞎模拟 我是建了个trie,对于图书和目录分开来存储。一个字符串用它在哈希表的位置作为数值。 然后输出的时候,把一个节点的儿子按字典序排序#include #include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace...
阅读(115) 评论(0)

小W学物理

题目描述为了测试小W的物理水平,Mr.X在二维坐标系中放了N面镜子(镜子坐标绝对值不超过M),镜子均与坐标轴成45°角,所以一共有两种类型“/”和“\”。原点不会有镜子,任意一点最多只有一面镜子。 镜子两个面都能反光,而中间不透光,例如,对于一个“/”型镜子,下方向射入的光线会被反射到右方向,左方向射入的光线会被反射到上方向。 现在有一条光线从原点沿X轴正方向射出,求走过T路程后所在位置模拟就模...
阅读(136) 评论(0)

string

题目描述给出一个长度为n, 由小写英文字母组成的字符串S, 求在所有由小写英文字母组成且长度为n 且恰好有k 位与S 不同的字符串中,给定字符串T 按照字典序排在第几位。由于答案可能很大,模10^9 + 7 输出。瞎做你尝试枚举比T串小的合法字符串最早在第几位和T不同,然后组合数+幂数算一波以这个为前缀的合法字符串数量。#include #include #de...
阅读(148) 评论(0)
21条 共2页1 2 下一页 尾页
    个人资料
    • 访问:251940次
    • 积分:10104
    • 等级:
    • 排名:第1813名
    • 原创:743篇
    • 转载:4篇
    • 译文:0篇
    • 评论:189条
    最新评论
    文章分类