- 博客(135)
- 收藏
- 关注
原创 codeforces 962(div.3)的B题和C题
因为排序后是固定的,所以思路就是统计l~r范围内两个字符串相同的字符有几个,然后长度减去相同的字符就是最终答案。
2024-07-27 18:32:07 366
原创 codeforces 961(div.2)-A- Diagonals与B1 - Bouquet (Easy Version)
由于对角线分布为,所以先填中间可容纳最大的,然后填两边,一直填到顶角,并记录填的对角线次数。
2024-07-24 20:22:35 330
原创 codeforces 960(div.2)-A. Submission Bait
思路就是将出现的数用集合a记录下来,降序且不重复,并用另一个数组b记录每个数出现的次数。然后去for循环遍历集合a,看每个数出现的次数来判断,如果较大的数出现的次数是奇数,则爱丽丝就有获胜的可能。
2024-07-21 07:46:32 201
原创 959(div.1+div.2)A. Diverse Game
思路是将矩阵的数往上移,往左移。这两个操作都要干,是为了遇到就一行或一列数是也能将数换位置。因为矩阵的数各不相同,所以换位置后,现在的数和原来的数就不会相同。
2024-07-19 07:46:33 249
原创 codeforces -958(div.2)A. Split the Multiset
【代码】codeforces -958(div.2)A. Split the Multiset。
2024-07-16 09:45:23 281
转载 小e看电视(贪心题)
思路是贪心,排列时先去比较右端r,如果r相等,则选择l小的,若r不想等,则选择r小的。而r相等,选择l小的是看完一整个动画后,遇到那种l=r的动画能选择。优先选择右端r小的是因为r小,则后面能够选择的更多。
2024-04-10 22:45:57 37
原创 7-26 单词长度
为什么要判断是否已经输出了第一个单词?比如你输入这种情况,那么输出就一个数字5,没有末尾的空格。当你输入这样:hello 是第一个单词,输出5了。然后world是第二个单词,要先输出空格再输出5。
2024-04-09 10:29:08 270
原创 比赛时一些常用技巧
关于同步流,如果没有取消同步流,cin>>一些数后,就会输出一些数(速度慢),而取消同步流,就会把输出先放在缓冲区,最后再输出出来。但是如果选择取消同步流,就不要用scanf()和printf()会出一些错误。
2024-04-07 22:43:26 239
原创 AcWing-282石子合并(经典基础区间dp)
分法可以是左边留1堆,右边留n-1堆,也可以左边留2堆,右边留n-2堆...即左边留k堆,右边留n-k堆,其中1
2024-04-06 15:51:07 186
转载 01背包问题(转载自B站)
先从最大(dp[5][8])倒着往前推,如果dp[5][8]==dp[4][8]则回到dp[4][8]否则回到dp[4][8-2]即dp[4][6]然后同理继续往前推,直到j=0或i=0时结束,j=0时,是没有容量了,i=0时是没有物品了。
2024-04-05 14:45:34 46
原创 关于数的二进制的一些操作
lowbit(x)=x&-x(x&~x+1),返回x的最后一位1以及后面的0。解释: 11010 求第2位(即求那个0)然后 &x 101010100。先>>2 110。再&1 & 001。求x的第k位数字: x>>k&1。解释:假设 x=101010100。
2024-04-04 21:00:27 237
原创 STL容器的一些操作(常用的,不全)
在参考链接那里,有个文章的vector的swap清空写错了,应该改为:vector().swap(nums)
2024-04-01 20:33:33 537
原创 排列函数与组合函数
a-b个因子,所以可以由该函数,让分母从1开始且增大到b来实现组合(可知,由于约分,分母与分子的因子的个数都相等,且都为(比如。,可知要实现排列函数,用阶乘就行,阶乘循环的次数就是(比如。
2024-03-31 20:43:54 176
原创 Acwing-3418 杨辉三角形
下面这些图都来自其他人所做图片因为杨辉三角形是对称的,并且与二项式有关:将左半部分(左半部分的编号肯定比右半部分小,不考虑右半部分)地去看,会发现同一斜行中,越往左下,数越大,同一行中,越往右数越大。所以从最里面的斜行往外找,比如要找20第一次出现在第3斜行的开头,位置在第6行(都从第0算起)),则其他斜行中要出现20,那编号一定比第3斜行的编号大。而对称轴,即每个斜行开头(右上角)的数字的规律是:比如,则为。而每个斜行末尾的数字规律是:比如,则为,为什么会有出现n呢?
2024-03-31 20:03:12 366
原创 Acwing-3208. Z字形扫描
则会从7往右上走,也就是从7->4,而不是从7->3了。你本就是从4->7,紧接着应该从7->3,如果不加判断,则变成4->7,7->4了,也就是又回去走重复了。如果你不加判断有没有走过。
2024-03-30 13:42:57 145
原创 P1434 [SHOI2002] 滑雪
那个,[3][3]他可能存了某点到(3,3)走过的是长度为5的路径,可是你从某点移动到【3】【3】时,如果路径已经比5还大,这时候,就不能返回,就要往下走去遍历了。的那个代码,如果【3】【3】坐标已经有最长路径,则不用往下进行了,直接把最长路径返回。比如同样的【3】【3】坐标,最优解代码的那个history【3】【3】数组存放的是。,而好理解的代码的lasnum【3】【3】数组存放的是从。总而言之就是两种代码的重复次数不一样,造成的耗时不同。某点到该点(3,3)的最长长度。该点能找到的最优路径。
2024-03-30 11:07:41 250
转载 清空string 容器与vector容器(转载)
在STL中 vector和string 是比较特殊的,clear()之后是不会释放内存空间的,也就是size()会清零,但capacity()不会改变,需要手动去释放,说明 clear() 没有释放内存。想释放空间的话,除了swap一个空string外,c++11里新加入的的std::basic_string::shrink_to_fit 也可以。vector的swap清空方法为:nums.swap(vector<int>());注意string的swap清空方法为:string().swap(str);
2024-03-26 22:13:28 81
转载 c语言eof怎么打出来 c语言如何输入eof(转载)
5、EOF(End of file)是知C/C++里面的宏定义,具体定义式是#define EOF -1,表示的是文件的结束标志,值等于-1,一般用在文件读取的函数里面,比如fscanf fgetc fgets等,一旦读取到文件最后就返回EOF标志并结束函数调用。3、当输入为文件时,遇到文件结尾C语言可以自动识别EOF,但如果输入为命令行交互模式,那么需要手动输入EOF. 在windows平台输入EOF的方法为,同时按下ctrl和z键。在文本文件中,数据都是以字符的ASCII码值的形式存放的。
2024-03-25 12:24:04 340
原创 c++结束输入
在C语言中,停止输入通常意味着结束从标准输入(通常是键盘)读取数据的操作。这通常通过检测一个特定的输入条件来实现,如一个特殊的EOF(文件结束)标记,或者当读取某些特定的值时结束循环。以上都是在满足特定条件时停止输入的方法,你可以根据实际需求选择合适的方式。
2024-03-23 23:42:09 1069
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人