- 博客(38)
- 收藏
- 关注
原创 2021 GDUT Winter Personal Training Contest I (gym-102672)仅文字题解
好家伙,一年没写题解越来越懒了说不定我以后会补上代码呢C. Spell题目大意给出a和b,递归求∏ab\prod_{a}^{b}∏ab各位之和。举个例子888→24→6888→24→6888→24→6,所以888各位之和是6。题解做这道题要知道一个神奇的知识(当然也能推出来),就是原数相乘后的各位之和是两数各位相乘之和(我是口嗨出来的)。还有一件事就是两个相差大于8的数一定含有一个9的倍数,只要被9污染的数它的各位之和一定是9(小学奥数?)。所以能在O(len(a))内完成。E. Cr
2021-01-22 15:09:27 251 1
原创 Codeforces Round #642 (Div. 3)总结 (D. Constructing the Array)
好久没写过博客了,随便写一篇……鉴于这场ABC都是水题就不贴了,就讲一下D题吧 (我才不会说后面的我懒得看了)因为我写完这篇blog还没结束比赛,所以我刚刚跑去看了最后两题,嗯,不会原题题目大意1、选一段最长并且最左的全为零的连续子串;2、把该字串中间设为iii。例子的话看图吧……ps:该答案存在并唯一题目分析这是个模拟题,第一眼看感觉很像快排那种分治思想,所以一开始拿了个队来做,结果发现这样做做不到最左边,之前发现不会STL库太坑了,学了一下优先队列,然后就拿了刚学的优先队列试试手。
2020-05-15 00:38:39 388
原创 POJ - 2777 Count Color 题解(线段树+bitset试用)
原题题目大意给一面墙,有两种操作,C是将A到B涂成C色,P是询问A到B有多少种颜色,初始墙体颜色为1,颜色种类很少(1≤T≤301\le T\le 301≤T≤30)题目分析明显线段树(树状数组好像也行),然后因为颜色总类很少,我们可以压缩到一个int里面,不过之前遇到了一题bitset优化的毒瘤题不会做,所以用这道题试试bitset以后不知道会不会写个专题【咕咕咕构造法bits...
2020-03-13 19:34:22 242
原创 单调栈 例题:POJ-3250,HDU-1506以及POJ-2796
蒟蒻的第一篇专题……最近(两天)都在研究单调栈,一开始学单调栈是看这篇文章学的传送门ps:顺便吐槽一下单调队列那一题,用g++和stdio交会tle,用c++或者用iostream输出都能ac,估计是poj那个老旧的评测机的锅概述单调栈是用来干什么的呢?那篇博文讲得不错单调是一种思想,当我们解决问题的时候发现有许多冗杂无用的状态时,我们可以采用单调思想,用单调队列或类似于单调队列的方法...
2020-03-12 18:41:51 228
原创 2020 GDUT Rating Contest III (Div. 2) H - Photoshoot 题解
原题题目大意给出一个数组,该数组是一个NNN排列的数组变形而来,且b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]题目分析确定第一个数,后面全部都确定了,找到一个合法的就能输出了,就是这样代码#include<cstdio>#include<cstring> int a[1011],b[1011];boo...
2020-03-05 09:42:58 171
原创 2020 GDUT Rating Contest III (Div. 2) E - Word Processor 题解
原题题目大意输入一段文字,输出一行文字,每行最多k个字母,单词必须在同一行题目分析虽然他要求行末没空格,但我还是过了,感谢CF的检查机制,水题不解释了代码#include<cstdio>#include<cstring> char str[111];int main(){ int n,k; scanf("%d%d",&n,&a...
2020-03-05 09:33:35 152
原创 2020 GDUT Rating Contest III (Div. 2) D - Race 题解
原题题目大意跑步,跑KKKm,从0m/s开始,加速度可以是1m/s,0,-1m/s,速度不能低于0m/s,在终点的速度要小于等于XXX,求最短时间题目分析我一开始还以为只能刚好跑到终点,结果发现看错了……英语太差,给自己增加难度知道题意之后就不是很难了,因为结束时有速度限制,那就不能从一开始加速到末尾了,要在加速超过末速后将减速区间也一起加上去,注意有一种特例,就是超过末速之后有一次不加...
2020-03-05 09:28:30 145
原创 2020 GDUT Rating Contest III (Div. 2) B - Loan Repayment 题解
原题题目大意给出NNN,KKK,MMM,假定已经给了GGG加仑奶,定义N−GX\frac{N-G}{X}XN−G为YYY,YYY最小为MMM,在KKK天后至少给NNN加仑奶,求最大的XXX。题目分析一条数学题,XXX是明显可以二分的,然后剩下是怎么检查的问题了检查是不能一天天去算的,那样肯定会TLE,所以要找方法加速计算在一定天数之后,GGG足够大,那后面的所有天数肯定都是MMM,...
2020-03-05 09:14:06 179
原创 2020 GDUT Rating Contest III (Div. 2) A - Wormhole Sort 题解
原题题目大意给出一个数组和一些路径,要将数组里的数通过路径交换,使其恢复1,2,…,n的数列,并最大化所用路径的最小值题目分析首先要明确一点,只要由通路连接两个点,那么肯定就能交换两个点的位置,怎么交换那是不重要的,这个挺容易证明的,但我不会证,所以这里就不证了←然后要将数列恢复的话,比如a在位置b,它要返回位置a,那么a,b就必须连通,所以处理输入的时候我用一个比较巧妙的方法用两个一...
2020-03-02 11:59:31 198
原创 2020 GDUT Rating Contest II (Div. 2) H - I Would Walk 500 Miles 题解
原题题目大意两只不同组的牛会走(2019201913x+2019201949y)%2019201997(2019201913x+2019201949y)\%2019201997(2019201913x+2019201949y)%2019201997里来找对方,找到一种分组方案,让它们找到其它牛要走的路径最大题目分析一开始看不懂……数字有点大,但其实是唬人的(然后我打了个exgcd)虽然...
2020-03-02 11:02:05 147
原创 2020 GDUT Rating Contest II (Div. 2) G - Bucket Brigade 题解
原题题目大意走迷宫,连n和m都确定了,注意起点和终点不用加进去题目分析略代码#include<cstdio>#include<cstring>int const n = 10;int const dirx[4] = {1,-1,0,0};int const diry[4] = {0,0,1,-1};int map[15][15];int bx,by...
2020-03-02 10:42:57 238
原创 2020 GDUT Rating Contest II (Div. 2) F - Milk Factory 题解
原题题目大意给出n条(单向)路,找到能到其他所有点的点题目分析求是否连通,数据规模不大,这种题来个Floyed就完事了代码#include<cstdio> int map[201][201];int main(){ int n,ans = -1; bool flag; scanf("%d",&n); if (n == 1) a...
2020-03-02 10:38:09 138
原创 2020 GDUT Rating Contest II (Div. 2) B - Snakes 题解
原题题目大意抓n条蛇,用n个网,求最少浪费空间题目分析这是一条我超级不擅长的dp题,直接上状态转移方程f[i,j]=min(f[i,j],f[p,j−1]+maxx[p+1,i]∗(i−p)−sum[i]+sum[p])f[i,j] = min(f[i,j],f[p,j - 1] + maxx[p + 1,i] * (i - p) - sum[i] + sum[p])f[i,j]=min...
2020-03-02 10:32:46 176
原创 2020 GDUT Rating Contest II (Div. 2) A - Fence Planning 题解
原题题目大意给出一些点和点之间的联系,求将一个网络完全圈起来所需的最小周长。题目分析一开始不太懂题目在讲什么,后来才看懂了……这其实是一个并查集...
2020-03-02 09:58:10 110
原创 2020 GDUT Rating Contest I (Div. 2) I - Where Am I? 题解
原题题目大意输入一个字符串,找到一段最短的独特子字符串,输出其长度题目分析好吧,我真没学过kmp,还好数据规模比较友好(1 <= n <= 100),所以我就二分找答案,暴力检查了代码#include<cstdio>#include<cstring> char str[201];int main(){ int n; scan...
2020-03-01 14:07:02 172
原创 2020 GDUT Rating Contest I (Div. 2) G - Livestock Lineup 题解
原题题目大意一共8头牛,要满足题目给你的相邻条件题目分析会用next_permutation就是水题,然而我不会用,写个搜索还不够时间……n = 8怎么写都不会超时吧(写个死循环或者n^16那我也没办法)代码#include<cstdio>#include<cstring>#include<string>#include<iostrea...
2020-03-01 14:01:38 205
原创 2020 GDUT Rating Contest I (Div. 2) F - Milk Pumping 题解
原题题目大意有n个城市,m条管道,每条管道有一个价值和流速,要找到一个 最小流速/费用和 最大的解决方案,输出答案*1e6的下取整题目分析明显是最短路嘛……这题没过的原因就是看题不认真(英语太差),不知道truncated是什么意思……当然这不是一条裸的最短路,因为要 最小流速/费用和 最大,也就是要让最小流速尽量大而费用和尽量小,所以我们先把最大的最小流速二分出来,再求出费用和...
2020-03-01 13:55:58 345
原创 2020 GDUT Rating Contest I (Div. 2) D - Meetings 题解
原题题目大意有n只牛运货,要运到0粮仓和l粮仓里,如果两头牛碰面,那么它们各自回头走,运完一半就停止题目分析这题在比赛的时候没有做出来……主要是因为不知道怎么帮牛找回自己的包袱。很明显的是,两头牛相碰的时候可以当作穿过去,他们的重量交换,这个数据规模不能直接跑模拟,所以要二分找结束时间,结束时间也不难找,主要还是怎么帮牛牛找回自己的包袱。后来发现,不管牛牛怎么相碰,运到的重量还是按照其...
2020-03-01 13:35:48 149
原创 2020 GDUT Rating Contest I (Div. 2) B - MooBuzz 题解
原题题目大意不算3和5的倍数,然后找到第n个数字题目分析就这样枚举过去肯定超时,所以就要想想怎么加快速度,作为一个蒟蒻,我用了一个很蠢的办法,反过来枚举,所以我用了个容斥原理找到上限往下枚举就完事了代码#include<cstdio> int main(){ int n; scanf("%d",&n); int m = n <&l...
2020-03-01 13:21:51 337
原创 2020 GDUT Rating Contest I (Div. 2) A - Cow Gymnastics 题解
好吧……是时候补一下题解了原题题目大意给出n只牛,k次排序,如果有一只牛一直比另外一只牛更前算作一对,输出一共有多少对。题目分析水题(数据规模小),一开始初始化全部都可以,然后一个个删去就行(k和n反了……好险样例给的k和n不一样)代码#include<cstdio>#include<cstring>bool map[25][25];int line[...
2020-03-01 13:15:34 153
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) J - Circular Dance 题解
原题题目大意输入每个人接下来的两个人,输出这个环(哪个开头不影响答案正误)题目分析讲题那个是谁啊……讲到天花龙凤,还顺时针逆时针两边存什么的,搞到我整个晚饭都在想怎么做,结果我写完之前的题解过去一看就会做了……因为每个人接下来两个都有了,那选了一个做开头之后,第二个和第三个就只有两种可能,再看看哪一个有包含另一个的,那他就是第二个了,然后对第二个人来说,有一个位置被第三个占了,那第四个...
2020-01-17 22:08:39 216
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) I - Powers Of Two 题解
原题题目大意给定一个整数n,要求用k个2的幂次方表示题目分析啊啊啊啊啊啊啊啊没来得及交啊想知道一个数怎么拆成二进制的话上网查查快速幂就行,这个不难的到了这道题的话,因为要凑够k个数,那么简单的分离是不足够的,不过我们可以先来两个剪枝当分离出来的数(也就是指数二进制中1)的个数比k还多的时候,那就不能再用k个数去表示n了(见in3)当全部数被分成了1还不小于k个数的时候,也不能凑...
2020-01-17 21:26:55 142
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) G - Array Stabilization 题解
什么?F题哪去了?不会,滚。原题题目大意给出一个数组,要求去掉正好一个数之后,使数组最大值和最小值之差(instablility)最小题目分析很明显,不改变最大最小值就对这个不稳定值(?)完全没有影响,随便排个序或者找最大次大最小次小加加减减就行这里用最简单的STL库【雾代码#include<cstdio>#include<cstring>#inclu...
2020-01-17 20:37:27 164
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) E - Repeating Cipher 题解
原题题目大意我也不知道怎么说……For example, if s=“bab” the process is: “b” → “baa” → “baabbb”. So the encrypted s=“bab” is “baabbb”.就是这样题目分析比签到题还水的题,我也没什么好说的了(刚刚去瞄了一眼standing,没做出来的应该不是集训队的吧)代码#include<...
2020-01-17 20:29:31 235
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) D - Diverse Garland 题解
原题题目大意和上一题差别不大,就是这次和旁边不同的就行题目分析将上一题的贪心代码复制过来改改就行……不过这次贪心是看前一位和后一位(话说能叫贪心么)代码#include<cstdio>#include<cstring>#include<string>#include<iostream> char ori[400010];bo...
2020-01-17 20:22:43 176
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) C - Nice Garland 题解
原题题目大意给出一段字符串,在这个字符串中仅包含’R’,‘B’,'G’三个字符(也就是三原色),修改该字符串使得它某个字符旁边以及旁边的旁边不能出现他自己,输出修改次数最小的方案和修改后的字符串题目分析一开始我是想用贪心的,就是三格三格找,最后一个入队的和要出队的一样就将入队的改掉核心代码如下 while (ft < n) { if (ori[ft...
2020-01-17 20:17:06 262
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) B - Divisors of Two Integers题解
原题题目大意给出一段数,这些数字是两个数的所有因数,找回这两个数题目分析简单分析一下可以发现最大的数一定是其中一个答案(花了10min意识到),然后就很简单了,去掉一个数的所有因子,剩下最大的那个数就是答案2了。这里用最简单的桶来做(其实不排序好像也行)代码#include<cstdio>#include<cstring>#define max(a,b)...
2020-01-17 19:52:48 156
原创 2020 GDUT Winter Personal Training Contest I (Div. 2) A - Two distinct points 题解
专题2,3,4的题解先没写……先把训练赛的写了先,那些等我凑齐题数再发原题网址好像不能直接看所以就不放了题目大意给定两个区间,在两个区间里各自随便找两个数,他们不相等题目分析签到题,直接代码别问我为什么要引入随机化代码#include<cstdio>#include<ctime>#include<cstdlib> int main()...
2020-01-17 19:44:52 213
原创 CodeForces - 1260B Obtain Two Zeroes 题解
原题又拖黑了 https://codeforces.com/problemset/problem/1260/B题目大意给出一对a,b,在多次a:=a−x,b:=b−2x或者a:=a−2x,b:=b−x(x∈N∗)a:=a−x , b:=b−2x 或者 a:=a−2x, b:=b−x(x∈N^*)a:=a−x,b:=b−2x或者a:=a−2x,b:=b−x(x∈N∗)后,能否使a和b同时为...
2020-01-13 22:52:38 149
原创 HDU - 3714 Error Curves 题解
原题http://acm.hdu.edu.cn/showproblem.php?pid=3714题目大意中文 from luogu题目分析我和我同学合作写过一篇题解,他文采比我好多了,推荐一下这题标准写法是三分求答案,然而我的方法和大家的方法不一样,我是二分求最值,而我同学一开始想用模拟退火,但模拟退火我们调不好参数,只有40分,所以最后就只有二分的题解了这里用我的程序来讲首先分...
2020-01-13 12:16:30 185
原创 HYSBZ1734 [Usaco2005 feb]Aggressive cows 愤怒的牛 题解
原题哇,竟然有翻译,话说这原题嵌套是什么操作?题目分析二分答案,然后验证答案简单来说,二分用于有单调性的题目,通俗点就是比答案小(大)的都可行,比答案大(小)的都不可行的时候验证不用讲了吧……代码#include<cstdio>#include<cstring>#include<algorithm>int n,c;int a[100010...
2020-01-13 11:42:49 265
原创 Gym101375H MaratonIME gets candies 题解
原题https://codeforces.com/gym/101375/problem/H题目大意猜数游戏,新手入门都会写的东西……应该是每一个人写的第一个游戏?题目分析遇到的第一条交互题,一开始返回个Idleness limit exceeded把我给楞住了,虽然作为一个cpp选手,但我还是喜欢用cstdio的,不过iostream的输出语句自带flush,而cstdio的没有……嗯...
2020-01-13 11:30:09 353
原创 Gym - 101755H Safe Path题解
原题https://codeforces.com/gym/101755/problem/H题目大意就是走迷宫,就是这么没新意,不同的是这次怪物也会动,而且还是瞬移的S是起点,F是重点,M是怪物,. 就是普通地砖从M开始d格都是危险区域,也就是不能走的地方能从起点到终点输出要走的步数,不能则输出**-1**题目分析还是走迷宫,还是搜索,不过这次是求最短路径,所以就要用bfs了,第一...
2020-01-13 11:17:56 527
原创 POJ1426 Find The Multiple 题解
原题啊,不小心拖黑了 https://vjudge.net/contest/347799#problem/F题目大意求n(n <= 200)的一个倍数,其只由0和1组成题目分析第一眼:100位啊,写个高精度第二眼:这也叫搜索?听完题解:这 * * 还不用写高精度?没错,我的程序跑n=6的时候输出1110,跑n=9的时候输出9条1,就算n=198也只是19位而log1026...
2020-01-13 10:53:20 195
原创 HDU2660 Accepted Necklace 题解
原题http://acm.hdu.edu.cn/showproblem.php?pid=2660题目大意一串项链,每颗石头都有价值和质量,用k颗石头做成一个最贵的项链,输出它的价值题目分析典型0/1背包,这里用最容易写的dfs写法咳咳,既然这是搜索专题,数据又这么小,那就给点面子写个dfs吧【虽然0/1背包也不难原题#include<cstdio>#include&...
2020-01-13 10:32:08 120
原创 POJ1979 Red and Black 题解
原题http://poj.org/problem?id=1979题目大意我还以为是八皇后那种呢……结果是走迷宫. 能走,#不能走,然后输出@能走到的格子有多少个(包括自己)题目分析典型搜索题,走迷宫的基本都是搜索了,我还记得我当初做了一个学期这类题……这里还是写比较容易写的dfs代码#include<cstdio>bool map[110][110];//当时n和m...
2020-01-13 10:17:57 627
原创 POJ2386 Lake Counting 题解
来自markdown萌新的吐槽:原来目录不是必要的……????原题http://poj.org/problem?id=2386题目大意以前做个一道题叫细胞问题,和这题差不多,都是给一幅图,然后让你数图中有多少个集合。题目分析数据不大,暴搜暴搜,dfs和bfs都可以,这里用的是更容易写的dfs。代码#include<cstdio>bool map[110][110];in...
2020-01-13 10:03:39 254
原创 POJ - 3061 Subsequence 题解
POJ - 3061 Subsequence 题解原题题目大意题目分析代码后记原题http://poj.org/problem?id=3061题目大意给出S和一个数列,求和大于等于S的最短子串。题目分析经典尺取题,尺取是截取数列上的一段最优子集的算法,时间复杂度为O(n),适用于选取区间有一定规律,或者说所选取的区间有一定的变化趋势的情况。代码#include<cstdio...
2020-01-13 09:47:12 166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人