学术
文章平均质量分 58
Wildcxj
放荡不羁爱自由!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF35C题解
原题传送门 思路 这道题,我一开始还以为是数学方法,结果一看数据范围: The first input line contains two integers N,MN,M(1<=N,M<=20001<=N,M<=2000)N,MN,M ( 1<=N,M<=20001<=N,M<=2000 )N,MN,M(1<=N,M<=20001<=N,M<=2000) 好吧,BFS 模板题。 前置芝士 BFS 方法,如果您还不会,可以参考这里(应原创 2021-08-10 18:07:17 · 178 阅读 · 0 评论 -
AT5252题解
注意:这篇题解写给萌新看的,非常详细哦QaQo( ̄▽ ̄)ブ。 题目解释 从 aaa 数组中中找到 aia_iai、aja_jaj、aka_kak,满足 {ai+aj=akai+ak=ajaj+ak=ai\begin{cases}a_i+a_j=a_k\\a_i+a_k=a_j\\a_j+a_k=a_i \end{cases}⎩⎪⎨⎪⎧ai+aj=akai+ak=ajaj+ak=ai 中的任意一条。 前置芝士:lower_bound lower_bound 是c++自带的二分的函数原创 2021-08-06 14:39:52 · 160 阅读 · 0 评论 -
CF1025A题解
题目传送门 题目翻译 给定一个长度为n的小写字母串。你可以将出现次数大于等于2的字母全部变成另一个小写字母。问你最后能否将该小写字母串的所有字母变成同一个字母。如果可以,输出"Yes",否则输出"No"。 思路 模拟,题目中说 你可以将出现次数大于等于2的字母全部变成另一个小写字母。 那么,我们一旦遇到两个相同字母,就可以输出Yes了,具体看下面: abaa→bbbbabaa \rightarrow bbbbabaa→bbbb abca→bbcb→bbcaabca \rightarrow bbcb原创 2021-08-06 10:26:20 · 159 阅读 · 0 评论 -
CF16D题解
CF16D Logging 原题 讲解 这道题大体思路是: 先不断读入,为了节省空间(当然这可以不需要),我们可以直接在读入后进行操作,输入可以用 scanf(更方便),但我给的代码就直接使用 cin。 接着就进行直接判断,可以先将时,分转化成目前离当日 00:0000:0000:00 过去了多长时间,这要好计算,再判断大小,要是之前时间 >>> 现在时间,则时光倒流了又过了一天。 切记,还要有一个计数器,初值为一,如果之前时间===现在时间,则计数器 +1+1+1 ,否则计数器变为 1原创 2021-08-06 10:25:25 · 141 阅读 · 0 评论 -
CF792B题解
水题。 前置芝士:deque deque是STL的一个容器,全名为双端队列容器,具体定义方式和vector等相似。 有两个重要函数,pushpushpush_ back()back()back() , poppoppop_ front()front()front(),前者可以向队尾插入元素,后者可以弹出(删除)队头元素。 正题 我们可以通过向队尾插入队头元素后弹出(删除)队头元素,从而实现换一个人,即将这个‘圈’转一格。 用deque代码实现就是: a.push_back(a.front()); a.po原创 2021-08-06 10:24:46 · 173 阅读 · 0 评论 -
CF431B题解
题目传送门 前置芝士:next_permutation函数 next_permutation可以产生一个数组(vector)的下一个排列,具体使用方法为: 数组版: next_permutation(a,a+n); vector版: next_permutation(a.begin(),a.end()); 其作用是可以对一个已排序的数组(vector)做全排列,模板如下: sort(a,a+n); do { //内容 }while(next_permutation(a/*a.begin()*/,a+n/原创 2021-08-06 10:23:56 · 111 阅读 · 0 评论 -
UVA12554题解
题目传送门 我是个蒟蒻,有错请多多包含。 这道题目是一道不错的数组练习题。 【题意】: 津津RujiaRujiaRujia过生日了,有TTT个人为他唱生日歌,其中,每个人唱一个词,若人数>>>歌词数161616,则重复唱,直到唱完为止。 歌词为: Happy birth day to you //不输出标点哦! Happy birth day to you Happy birth day to Rujia //是Rujia哦! Happy birth day to you 唱歌时不许原创 2021-08-06 10:22:52 · 102 阅读 · 0 评论 -
洛谷P1322题解
题目传送门 这道题是一道很好的递归题。(当然模拟也可以做) 首先我们看题:在次题中,logo有3个关键词: 1.FD(向前); 2.BK(向后); 3.REPEAT(重复)。 这些关键词语法分别为: 1.FD n 表示向前移动n步; 2.BK n 表示向后移动n步; 3.REPEAT n[…(代码)]表示重复执行中括号里面的代码n次。 好,我们的题意讲完了。(终于讲完了) 现在,我们正式开始讲解题目: 首先的首先,再声明一下,我用的是递归做法。(别告诉我您不会递归) 首先来看你们最爱的coding: 重要原创 2021-08-06 10:21:47 · 328 阅读 · 0 评论 -
CF977B题解
原题传送门 一道模拟题,然鹅我调了好久,是set锅 思路1 直接暴力,遇到每一个子串,都重新遍历一遍,判断其数量,再和已有的max比较,时间复杂度O(n2)\mathcal O (n^2)O(n2),由于字符串长度最长100,此解能过得去。 (这里就不放代码了) 思路2 利用map和vector(数组也行),用map储存每个子串的数量,vector储存每个子串, vector<string> v; map<string,int> mp; 然后再遍历字符串以获取每个子串以及和它相同原创 2021-08-06 10:21:05 · 149 阅读 · 0 评论 -
CF550C题解
原题传送门 一道模拟题。 前置芝士(写给小学生看的) 结论 8 的整除特征:若末三位为 8 的倍数,则整个数为 8 的倍数。 推导 设 nnn 是 ≥1000\geq1000≥1000 的整数。 n=1000a+bn = 1000a+bn=1000a+b ∵n≡1000a+b(mod8) 且 8∣1000a\because n\equiv1000a+b\pmod{8 } \ \texttt{且} \ 8\mid 1000a∵n≡1000a+b(mod8) 且 8∣10原创 2021-08-06 10:19:22 · 189 阅读 · 0 评论 -
CF937B题解
原题传送门 solution 1 看到题目,我是一开始想(我太弱了)先预处理出 2∼p2\sim p2∼p 的倍数中所有 ⩽y\leqslant \text{y}⩽y 的数,但时间复杂度是 O(py)\mathcal O (py)O(py),最差 O((109)2)=O(1018)\mathcal O ((10^9)^2) = \mathcal O (10^{18})O((109)2)=O(1018) 明显超时。。。 for(int i=2;i<p;i++){ for(int j=i;原创 2021-08-06 10:17:37 · 116 阅读 · 0 评论
分享