水题
sunnyorrainy
这个作者很懒,什么都没留下…
展开
-
中位数的和,cf1440B
题意: 有n*k个数,它们是从小到大排列的,把它们分成k组,每组n个,然后找出每组的中位数,这题的中位数是的定义是,,问所有的中位数加起来,最大值是多少? 题目链接 思路: 这题我想了好久,其实就是找最大的数,每次都找最大的数,合法的最大的数。 每一组的中位数,比它大的数的个数:,我们不需要去关心比中位数小的数,反正总能找到。于是就从后往前一直加上和法的最大值就行了。 #pragma warning(disable:4996) #include<iostream> #include原创 2020-11-18 20:25:34 · 261 阅读 · 0 评论 -
约瑟夫环,递归
约瑟夫环 n个人, 从1到n开始编号,每次数到m,就把那个人去掉。 问最后的那个人是谁 #pragma warning(disable:4996) #include<iostream> #include<algorithm> #include<cstdio> #include<map> #include<set> #include<cmath> #include<ctime> #include<vector&g原创 2020-10-01 16:01:06 · 154 阅读 · 0 评论 -
组合不重复数字
题意: 有两个数组,数组中的元素都是不同的。分别从两个数组中挑一个数字, 然后相加,组合成新的数字,所有新组成数字也不能有相同的。 题目链接 思路: 组成不同数字的题。 先分别排序,然后依次对应相加。就肯定不会有一样的数字。 #pragma warning(disable:4996) #include<iostream> #include<cstring> #include<cstdio> #include<set> #i...原创 2020-06-01 16:03:56 · 775 阅读 · 0 评论 -
构造最长回文串
题意: 有n个长度为m的字符串, 把它们拼接在一起, 输出可能的最长回文串。 题目链接 思路: 用map记录字符串的个数,使用reverse函数得到它翻转之后的字符串,如果有反转后的字符串,就把它在最前拼面和最后面拼接上。用string的‘+’运算进行拼接。如果是单独的一个字符串,但是它是回文的,就把已经得到的字符串分成两半,还是要用string的'+"运算,因为确定长度的string访问下标会出错。 #pragma warning(disable:4996) #incl...原创 2020-05-31 21:56:42 · 405 阅读 · 0 评论 -
灯的亮灭问题 枚举
题意 : 给你 N 灯泡的初始状态(开或者关),然后对于每一个灯泡,给出两个值 a,b; a 代表快关状态切换的周期,b代表第一次切换的时刻。即在b, b +a, b+2*a的时候,状态会改变。问在某一时刻,能够同时亮的灯泡数目的最大值。 题目链接 思路: 枚举每一秒的灯的状态,然后更新最大值。但是,枚举多少秒钟才够,我不知道。反正数据小,只要不超时,往大的整就行。 如果数据比较大的话,就需要用另外的方法了 #pragma warning(disable:4996) ...原创 2020-05-26 17:51:28 · 355 阅读 · 0 评论 -
codeforces 1279c
有一个栈,里面有n个元素,还有一个数组,要按数组的顺序把它们从栈中取出,取出的方式是在栈中把这个元素前面的元素取出,然后把这个元素取出,再把前面的元素放回去,放回去的时候可以重新排序,使得接下来的操作数更少,问最少需要操作几次。 思路:把每个栈中元素的最初位置记录下来,然后记录一个last值,代表前面的已经出栈的元素的最大的位置,也就是已经排好序了的元素的最大位置,如果当前需要出栈的元素的栈中位...原创 2019-12-28 08:41:09 · 698 阅读 · 0 评论 -
codeforces 1186D
给一些浮点数,它们的和为0,把每个数向下或者向上取整,得到新的数,它们的和也为0。输出取整后的数。 这题可以用ceil函数,向上取整,然后把多出来的,从第一个数开始减一,如果这个数本来是整数,就不能减。 而且要注意总的个数是1e5数绝对值的范围也是1e5。可能会爆int。 ceil函数会得到-0这个值,要判断一下 #pragma warning(disable:4996) #includ...原创 2019-12-24 19:11:40 · 161 阅读 · 0 评论 -
codeforces1251C 奇偶性
题意:有一个序列,如果相邻的两个数的奇偶性不同,就可以把它们交换。问得到的最小的序列是什么。 题目 不管怎么交换,会发现所有的偶数的相对位置是不变的,所有的奇数的相对位置也是不变的。那么要获得最小的序列,就应该按顺序取出一个奇数和一个偶数,把它们中较小的那个加入答案中,最后把剩下的全部加入答案中,和归并排序有点像。 #pragma warning(disable:4996) #includ...原创 2019-12-10 20:35:59 · 443 阅读 · 0 评论 -
hdu6264思维题
题意:给一个字符串,修改最少的字符使它成为超级回文串,超级回文串是任意的长度为奇数的子串都是回文串的字符串。 只有两种情况,要么全部都是一样的,要么就是只有两种字符,它们挨着排列,比如ababab。 两种情况都是奇数位都是一样的字符,偶数位都是一样的字符; 找出奇数位出现次数最多的字符出现次数,和偶数位出现次数最多的字符出现次数,然后n减去它们就可以了 用map来计数简单方便。 当然也可...原创 2019-10-27 18:31:08 · 198 阅读 · 0 评论 -
贪心 poj3617
题意:一个字符串,每次从开头或者结尾取一个字符,使重新组成的字符串字典序最小。 思路:贪心的取开头或者结尾字符,两者中较小的那个,当两个字符一样的时候,判断它们的下一个字符谁更小,取小的那个。 #pragma warning(disable:4996) #include<iostream> #include<cstring> #include<cstdio>...原创 2019-09-24 09:48:09 · 86 阅读 · 0 评论 -
计算星期几的公式(欧拉计划19)
一:基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 d:day m:month y:year 当m=1或者m=2时 m+=12;y-- 也就是把本年的一月二月当作上一年的13月和14月 (公式太长有点难记,我又不能理解这个公式怎么推出来的,过程实在太复杂) C++代码: #include<iostream>...原创 2019-07-27 20:27:33 · 352 阅读 · 0 评论 -
hdu1576 暴力和逆元
暴力的: 一:A被B整除,A=k*B,两边同时%9973 A%9973=(k*B)%9973 n=k%9973*B%9973 B=B%9973 k=1;k++,当k*B==n,输出k #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #inc...原创 2019-06-12 10:58:07 · 126 阅读 · 0 评论 -
codeforces 1165B(做得太久了)
题意:做题,第一天做一个,第二天做两个,第n天做n个,给你一个数组,你第n天可以选择一个数组中的数,选过了的就不能选了,如果至少有比n大,就算成功练习了一天。问最多能练习多少天。 这题我wa了一次,然后又想到了好多的错误方法,做了好久。wa的那一次,就是没有注意到大于等于n的时候也可以。其实还是很简单的。 #include<iostream> #include<cstring&g...原创 2019-05-15 15:17:10 · 415 阅读 · 0 评论 -
HDU 1686 kmp算法
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int Next[100005],La,Lb; void crtNext(char *a){//建立Next数组,表示a[j]与b[i]不匹配时 //a的下一个下标j int i=0,j=-1;//这个i和j...原创 2019-03-09 22:24:26 · 100 阅读 · 0 评论 -
codeforces 903B模拟打怪兽
这题不算难,但是有点坑,就是要注意是大于等于还是大于,“=”要考虑清楚。 还有就是字符数组要开大一点,当自己很弱小比如生命和力量都为1,治疗为10.但是怪兽很强,生命10,力量9. 这时你要不断回血,而且还只能一回合回一点血,你要积累9回合才能打一下怪兽。 #include<iostream> #include<map> #include<string>...原创 2019-01-22 10:09:44 · 260 阅读 · 0 评论 -
windows message queue
优先队列 优先队列对结构体的简单操作 题意:get代表出队,put代表入队 ,给一些指令,模拟操作 在这里插入代码片 #include&amp;lt;stdio.h&amp;gt; #include` #include #include using namespace std; struct node{//定义结构体 char name[300]; int tmp,num,p; friend bool oper...原创 2018-12-28 20:21:08 · 143 阅读 · 0 评论 -
codeforces 908A new year and counting cards
这题看着真TM吓人,其实很假 只要读懂题,都会做 题意: 如果一个字符是元音字母,则它对应的数字必为0,2,4,6,8(偶数)中的一个,否则为false。就是如果是元音字母,则要判断,如果是奇数也要判断(因为如果它的对应字符为元音,那么则为false)如果是偶数或非辅音字母则不用判断。要保证的是元音字母必对应偶数 #include<stdio.h> #include<string...原创 2018-12-28 21:17:05 · 171 阅读 · 0 评论 -
**codeforces round 529 div3 b题**
我用的优先对列来做的,(其实也可以直接用数组,sort排序) 删除最大或最小之后,剩下的数的最大减去最小,再比较 其实就是比较最大和第二小的差t1,和第二大与最小的差t2的大小 比如: 1,2,3,4,5,6,7,-1 八个数,先删除-1,剩下的最大减最小为6,记为t1; 再删除7,最大减最小为7,记为t2,比较t1和t2,t1小输出t1 在这里插入代码片 #include<stdio.h&...原创 2018-12-28 16:28:54 · 93 阅读 · 0 评论