下笔春蚕食叶声。
摘要: 看题解之前,希望大家先自己列张表,会发现规律哦~ 用递归 #include<bits/stdc++.h>//万能头文件 using namespace std; int a[100005];//保存答案,当然你也可以直接输出(假如你能做到的话) int hhh(int N,int K) { if(N 阅读全文
posted @ 2020-06-11 18:37 ACwisher 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目大意:a和b坐了两列不同的火车,且打算再车站会面。a车在$[t1,t2]\(时间段等概率到达,b在\)[s1,s2]$时间段等概率到达。火车停$w$分钟后出发。求碰面的概率。 解法简述: 设a在x时间到达,b在y时间到达,即$|y-x|<=w$时可以碰面。即$x-w<=y<=x+w$ (白书配图 阅读全文
posted @ 2020-06-11 18:30 ACwisher 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这道题明显的树形DP,但是我有一个邪恶的想法,让他变成多叉树,而且不用返回可以幻影移形,但是得走回来才能去另一条走廊。这看起来很恶毒,我也不知道怎么做。 做法大家都解释的差不多了,这里我主要说一下毒瘤的读入 这道题的读入与这篇博客所讲的题目的输入非常相似 void init(int &x){ x=+ 阅读全文
posted @ 2020-06-11 18:29 ACwisher 阅读(128) 评论(0) 推荐(0) 编辑
摘要: dfs实现数位DP int dfs(int d,int m1,int m2,bool fl) d:正在填从右往左第d位 m1表示数字和%k余数,m2表示该数%k余数 fl=1表示达到当前上限,0表示没限制(数位DP常规操作)…… 我一开始是从最高位开始枚举的,但是出了些问题,现在这个写法是从最低位枚 阅读全文
posted @ 2020-06-11 18:28 ACwisher 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 看看大家都是$O(n)$的,小蒟蒻已经方得不行…… 那我来一篇$O(nk+nlogn)$的好了,还是可以AC哒 用$cnt_i$表示前i家中最低消费不超过$p$元的咖啡馆的数量 用$sum_{i,k}$表示前i家中k色调的客栈总数 我们枚举第一家客栈 并计算此时选择第二家客栈的方法总数 (就是有多少 阅读全文
posted @ 2020-06-11 18:27 ACwisher 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 首先,我们发现n的范围非常大,m在1000以内。 我们知道,n>=m时,一定有一段数字和能被m整除。 所以,讨论n<m的情况。n在1000以内。 背包。dp[i][j]表示前i个数中取,和除以m余数为j的。 for(int i=1;i<=n;i++){ dp[i][a[i]]=1; for(int 阅读全文
posted @ 2020-06-11 18:26 ACwisher 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 写在前面: 第一次认真写题解QwQ求赞 我初学dfs时遇到的第一题应该就是这道吧 本文面向初学者,说的较为详细 侧重于作者的做题过程 我相信很多人都会像我一样去做 枚举每一行的皇后的位置即可 对角线的处理非常令人迷茫 第一次尝试: 一开始,我兴奋地打了这样一个代码: 用二维数组vis标记一下能不能放 阅读全文
posted @ 2020-06-11 18:25 ACwisher 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意简述: 神刀手有很多蚯蚓,每次把最长的一条切成⌊\(px\)⌋和$x$-⌊\(px\)⌋两段。(显然p值大小是固定的,\(x>=0\),所以这两段的大小关系不变) 要问的是 $m$秒内,每一秒被切断的蚯蚓被切断前的长度(有$m$个数),输出时只要输出秒数是t的倍数的就行了 \(m\) 秒后,所有 阅读全文
posted @ 2020-06-11 18:24 ACwisher 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 首先友情提醒一下,搬题目的放漏了这题样例其实就是 input 2 1 2 3 4 5 6 4 3 2 1 6 5 output Twin snowflakes found. 这题我做的很窝火,终于AC了,写篇题解添加点成就感。。。 一开始我以为是简单题,打算先找到每朵雪花中最小的数,顺时针逆时针都算 阅读全文
posted @ 2020-06-11 18:22 ACwisher 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 群置换。 共有两种置换,旋转和对称。 对于旋转,旋转i颗珠子时$(0<=i<n)$ 举例1,旋转4颗珠子 1 2 3 4 5 6 5 6 1 2 3 4 1-5-3 2-6-4 2个循环,每组3个 举例2,旋转3颗 1 2 3 4 5 6 4 5 6 1 2 3 1-4 2-5 3-6 3个循环,每 阅读全文
posted @ 2020-06-11 18:21 ACwisher 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 写在前面: 在窝的博客食用口感更佳 这应该是2019CSP之前写的最后一篇题解吧 关于码风等细节说明: 用了链式前向星 码风奇异,是蒟蒻风的 $n^2$能过,没加堆优化 思路: 反向建边,从终点跑一次dijkstra inf值的删掉自己和出边是到自己的点 正常的建边从起点跑一次dijkstra 详细 阅读全文
posted @ 2020-06-11 18:19 ACwisher 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 看代码: #include<bits/stdc++.h>//万能头文件 using namespace std; int main() { long long n,d[200005],a,ans=0;//定义,记得开long long cin>>n>>a; for(long long i=1;i<= 阅读全文
posted @ 2020-06-11 18:18 ACwisher 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 莫名a了,发一波题解 #include<bits/stdc++.h>//万能头文件 using namespace std; int dp[105];//数组不必开大,哈哈哈 struct pos { int t; int w; }a[105];//哦,我可爱的结构体 int main() { in 阅读全文
posted @ 2020-06-11 18:16 ACwisher 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 不是很难,我想你看题解一定是因为没开long long吧,如果是这样,给我点个赞哦~ #include<bits/stdc++.h>//万能头文件 using namespace std; int main() { long long n,m,a;//一开始没开long long,我过了几个月回来试 阅读全文
posted @ 2020-06-11 18:14 ACwisher 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 看代码 建议先找找规律,推推公式哦~ #include<bits/stdc++.h>//万能头文件 using namespace std; int main() { int n; int k=0,x;//用k表示ai-1,用x表示ai ; cin>>n;//读入 for(int i=1;i<=n; 阅读全文
posted @ 2020-06-11 18:13 ACwisher 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 因为要回到原点,所以有多少L就必须要有多少R,同理有多少U就必须要有多少D 所以我们知道奇数长度的不可能,直接输出-1 我们一定要统计一下各种字母的数量, 算出了 l,r字母数的差lr 和 u,d字母数的差ud 然后再进行+、-、*、/and绝对值 所以我们就开始找规律 最后通过样例的数据我试出答案 阅读全文
posted @ 2020-06-11 18:12 ACwisher 阅读(121) 评论(0) 推荐(0) 编辑