关闭
当前搜索:

[arc077e]guruguru

题目大意有一个台灯,等级为1~m的一个整数。 有一个喜爱等级x,你每次操作可以让台灯等级+1(m+1会变成1)或变成x。 现在你要完成台灯等级从ai变成ai+1这n-1个操作。 如何选择x能使操作次数最小。做法每次可以讨论出某些区间需要变成x然后到达ai+1比较优还是直接加到ai+1比较优。 然后打上对应前缀tag,最后顺序扫一遍找一个最小的。#include #includ...
阅读(101) 评论(0)

[arc082f]Sandglass

题目大意有一个沙漏,初始A面在B面上方,A面有a克沙,B面有X-a克沙,每个时刻如果上面的那一面有沙就会掉一克下来。 有n个时刻我们会翻转沙漏,现在若干个询问给出a和t,问A面如果初始有a克沙,时刻t时A面有多少沙。画一下根据初始a的图像任意时刻都是一段平板或一段平板+一个斜率为1的直线+一段平板。#include #include #define fo(i,...
阅读(139) 评论(0)

[agc011d]Half Reflector

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

[agc012d]Colorful Balls

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

[agc013c]Ants on a Circle

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

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

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

幻想

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

图书列表

题目描述模拟这种题瞎模拟 我是建了个trie,对于图书和目录分开来存储。一个字符串用它在哈希表的位置作为数值。 然后输出的时候,把一个节点的儿子按字典序排序#include #include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace...
阅读(147) 评论(0)
23条 共2页1 2 下一页 尾页
    个人资料
    • 访问:324658次
    • 积分:11599
    • 等级:
    • 排名:第1515名
    • 原创:814篇
    • 转载:4篇
    • 译文:0篇
    • 评论:201条
    最新评论
    文章分类