当前搜索:
题目大意有一个台灯,等级为1~m的一个整数。
有一个喜爱等级x,你每次操作可以让台灯等级+1(m+1会变成1)或变成x。
现在你要完成台灯等级从ai变成ai+1这n-1个操作。
如何选择x能使操作次数最小。做法每次可以讨论出某些区间需要变成x然后到达ai+1比较优还是直接加到ai+1比较优。...
题目大意有一个沙漏,初始A面在B面上方,A面有a克沙,B面有X-a克沙,每个时刻如果上面的那一面有沙就会掉一克下来。
有n个时刻我们会翻转沙漏,现在若干个询问给出a和t,问A面如果初始有a克沙,时刻t时A面有多少沙。画一下根据初始a的图像任意时刻都是一段平板或一段平板+一个斜率为1的直线+一段平...
前言推了一会儿发现很有趣哦。
没有看题解,可能做复杂了。题意一个长度为n的AB串。
每个位置实际是一个机器,机器有两种状态A和B。
每当一个球从左右某一端进入一个机器时,如果是A状态,就从同一端扔出去,否则从另一端扔出去。每次这样后机器会更改状态。
从最左端的机器左端扔一个球,最后一定会从...
前言做这题时感觉肯定是有一堆球允许重排的,要求找到每种颜色这些球的个数,其余球大概都是固定的,应该不复杂。
大概思路也确实就是这样。不过需要仔细讨论。
有一个很重要的性质当然是a和b如果都能和c对换,a和b也是可以对换的。题意n个球,每个都有颜色和重量。
对于两个同颜色的球,如果重量和在x以...
题目大意数轴蚂蚁问题升级成环。做法如果是数轴是经典问题:
两只蚂蚁相遇后掉头可以看做代替对方继续前行。
相对位置永远不变。
初始坐标刚好递增。
但是现在是环,注意到每当有蚂蚁跨过L-1或0就会使排名进行右/左移。
因此也很方便了。#include<cstdio>
#inclu...
题目大意旋转序列s使得∑ni=1|si−i|\sum_{i=1}^n|s_i-i|最小做法大致思路是可以拆绝对值记录个数即贡献,顺着扫,对于一个位置有两个位置很关键。
(我都不知道我在说什么#include<cstdio>
#include<algorithm>
#inc...
题目大意题解瞎猜想和画图得到一个不好说的结论。
用诡异的单调栈做。#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i...
题目描述数据流统计功能上线后,为51nod提升用户体验做出了很大的贡献。但是新问题随之而来,夹克老爷还想知道在一个窗口内,访问次数最多用户(即窗口内的众数)。如果有多个众数,取用户ID最小的一个。(窗口的意思是一个固定长度的区间!)(因为数据流是实时的、在线的,所以不允许使用离线算法^_^)做法一...
题解看懂题意题。#include<cstdio>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>...
题目描述懒得写模拟答案肯定小于等于2。
用个map,然后xjb讨论。#include<cstdio>
#include<algorithm>
#include<map>
#define fo(i,a,b) for(i=a;i<=b;i++)
using ...
题目描述懒得写贪心排序,a第一关键字b第二关键字。
然后优先选b,不行选a。#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
c...
题目大意a1=t0
an=(A*an-1^2+B*an+C)%D(n>1)
求该序列最长不下降子序列长度暴力n不是很大显然可以暴力。
n很大呢?
那就不断减循环节长度直至减到一个阈值内,再暴力。
正确性显然,只要阈值不要设太小。#include<cstdio>
#inc...
题目描述做容易归纳出Si就是i在k进制数下各数位上的数的和再模k。
证明很简单。
我们只需要维护k进制分解即可。
用一个数组维护,每次把最低位+1,然后考虑进位。
均摊分析这是线性的:
设势函数为k-1的数量。
每次若进位了s个,那么势函数减少了s,并可能增加1,实际消耗时间为s+1,...
题目大意小A和小B在玩石头剪刀布,他们每个人写出一个序列。
小A写出了n个数。
小B写出了m个数。
其中0代表石头,1代表剪刀,2代表布
0>1,1>2,2>0。
他们总共进行k轮,第一轮选择第一个数字,后面每一轮两个人都选择序列的下一个数进行比赛(序列结尾的下一个位置...
题目描述模拟这种题瞎模拟
我是建了个trie,对于图书和目录分开来存储。一个字符串用它在哈希表的位置作为数值。
然后输出的时候,把一个节点的儿子按字典序排序#include<cstdio>
#include<cstring>
#include<algorithm&...
题目描述为了测试小W的物理水平,Mr.X在二维坐标系中放了N面镜子(镜子坐标绝对值不超过M),镜子均与坐标轴成45°角,所以一共有两种类型“/”和“\”。原点不会有镜子,任意一点最多只有一面镜子。
镜子两个面都能反光,而中间不透光,例如,对于一个“/”型镜子,下方向射入的光线会被反射到右方向,左...
题目描述给出一个长度为n, 由小写英文字母组成的字符串S, 求在所有由小写英文字母组成且长度为n 且恰好有k 位与S 不同的字符串中,给定字符串T 按照字典序排在第几位。由于答案可能很大,模10^9 + 7 输出。瞎做你尝试枚举比T串小的合法字符串最早在第几位和T不同,然后组合数+幂数算一波以这个...
题目描述做法我们先处理出fix表示在全空情况下不断进人,i这个房间被第几个人最终停留。
用一个堆保留空房间当前fix的最小值,每次进一个人就是选择堆中最小值的房间。
拿走人的话观察一下就是从这个房间往上有人房间的数量-1,这个可以倍增来求,因为这个房间到根路径上有人和没人一定是分离开的。
分...
题目描述模拟我们可以枚举在那个点被抓到,然后让石神马不停蹄的跑到那个点,接着乖乖等死。#include<cstdio>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i...