- 博客(15)
- 收藏
- 关注
原创 CF1648B Integral Array
题目 说实话,没看懂这个C的作用,找个里面的最大数不久可以了吗 这个题目就是说对于任意A[i] 大于A[j] ,如果A[i]/A[j]也在数组里面,那么就输出YES,否则No 最朴素的想法就是枚举每个数字,但是这样肯定超时 那对于每个元素考虑,不妨枚举他的倍数 a[i]/a[j]=b; 也就是说去枚举这个a[j]和这个b 如果范围内存在这么个a[i],也就要求a[i]/a[j]存在 (逆向思考) 所以这里要用到前缀和 #include<bits/stdc++.h> using namespace
2022-03-18 22:21:39 240
原创 Best cow fences(大于某个长度的最大子序和)
首先从最基本的出发; 1.求出一个序列的最大字段和 一个O(N)的做法是从头到尾扫描,并不断用sum里加入这个数,如果段和为负数,那么就重开。 2.求一个长度大于L的最大子段和 这个时候第一个方法肯定不适用了,因为没有规定长度 这个时候用前缀和,复杂度O(n*n); 3.求一个长度大于L的平均数最大的连续子段 这个时候和1,2发生了很大的区别,因为是求的平均数,而不是简简单单求个和 这个时候我们可以用二分法,首先,我们可以求一个长度大于L的最大字段和 ,那么不妨假设平均数为A,然后序列全部减去A后得到一个新
2021-10-07 15:56:59 126
原创 CSP游记
这是考完的第二天,周二,想着虽然炸了,我还是写篇游记吧。 还有199天高考 day1 去考场,大家满怀期待,第一天坐的是学校的车,今年考试的人多了,去年只有四个。 考前很紧张,想着1=的话,T1T2得A,然后到了考场,惯例拍照。湖南大学前进楼,我在301考场。 T1 一看题,这么长的题面,有点懵,想着到时候再来想,先打下暴力分,递推吧(因为看完3道题然后理清T1花了快1个小时)然后当时没看清,以为...
2019-11-20 13:34:25 189
原创 CSP-2019 day1
感觉起来的时候没什么感觉,有点困。停课一周,状态有点下降了 到考场 看第一题题面很长,然后看了半天,想着打递推骗点分再说,打完后40min 之后T2,搜索,打了一个多小时(骗点分真不容易) 之后去看T3,看完后11.10,以为11:30下考,然后很慌,准备走了? 之后被告知还有半个小时??接着看了下T3,不太会,还有15min,突然T1想起了正解,立马去打,打完后11:55?有个Bug没调出来?然...
2019-11-16 16:36:00 183
原创 关于树状数组的理解
看到树状数组,又有点懵了,但是实际上想一想发现其实不难 a[]原始数组 c[]前缀和数组 对于任意一个数字x c[x]表示下标为x-lowbit(x)+1到x的a数组的前缀和 那么根据这个,我们可以初始化 初始化之后,其实最主要的是lowbit的使用和原理 如果我们要实现单点修改 我们只需要改下标为x的,到x+lowbit(x)的,再到………… 就是这样一个循环的过程 那么,这个原因是什么呢? 不...
2019-11-13 18:28:59 82
原创 马拉松赛跑(2019.8.19)
题目 这道题乍一看,发现跟几天前做过的那道书的整理岂不是差不多的吗? 只是权值改变了而已而且有几个地方需要修改,结尾的时候需要判断一下 其实本质上没变化 然后A了 #include<bits/stdc++.h> using namespace std; int dp[1001][1001]; int dis[1001][1001];//前i个中选择j个的最小值 struct node...
2019-08-19 22:15:55 394
原创 P4677 山区建小学(2019.8.18)
题目 最近作业越来越多了,然后看到这道题的时候,思考如何定义dp的维度 我原本是准备定义dp[i][j]为前i个数字中选择j个数字的最小值 但是在转移的时候我懵了,因为这个转移我觉得不太方便啊 比如你枚举1-n中的点k 他这个值该怎么修改呢?就相当于在k和n的点应该选择哪一个是最优的呢? 然后我就准备定义dp[i][j]为在1-i中间选择j个数字最小值(其中i必定是要选的 ) 所以我居然还写出了个...
2019-08-18 22:12:58 132
原创 跑步(2019.8.17)
题目 拿到这道题目的时候首先挺懵的,觉得就普通的递推方程真的很难写,转移方程真的是不容易 题解中一种方法,让我学会了一个新的方法,叫刷表法 与填表法不同的是,刷表法并不要求这个表里面的答案是上个或者之前的阶段递推而来的,可能会有很多值可以推到 dp[i][j]表示的是在第i时间的时候疲劳度为j的最远距离 这是比较容易想到的,但是难就难在如何解决这个填表 刷表法的话 第一个要填入的数字就是dp[1]...
2019-08-17 21:51:59 91
原创 书的复制(2019.8.16)
书的复制 这道题的话,一看,DP还没去思考 但是一看的话,肯定是可以二分答案的,满足单调性 所以 #include<bits/stdc++.h> using namespace std; int m,k; int ans; int sum=0; int a[1000010]; void shuchu(){ int now=0; int back=1; for(int i=1;i&...
2019-08-16 22:10:04 83
原创 选择客栈(2019.8.15)
选择客栈 原题 这道题,一开始是想着用递推的,然后后来想着想着想复杂了,就开始用st表了。 st表的话 #include<bits/stdc++.h> using namespace std; int color[200010]; int w[200010]; int n,k,p; vector<int> v; int st[200010][22]; int a[2000...
2019-08-15 14:11:10 110
原创 钓鱼P1717(2019.8.14)
钓鱼 钓鱼,原题在这里 这道题一看就觉得是DP 然后结合我之前学的动态数组什么的 打了一波代码,然后交上去发现只有80分代码如下: #include<bits/stdc++.h> using namespace std; int f[30],d[30],t[30]; int ans[100001]; int maxx=0; int dp[100001]; int n,h; inline...
2019-08-14 21:33:35 285
原创 股票交易(2019.8.13)
股票市场USACO 股票市场 一开始知道,这个题目是个背包题,其实感觉不好想啊。因为觉得这个跟背包问题有什么关系吗?这个题目每天处理的话,是无法确定每天所有的背包容量的,也就是背包容量处于一个变化的过程。 个人认为这个题目应该算是很经典吧,比起很多动态规划的题目,这道题目的思维难度不小。 想了很久,实在没有头绪啊!看了题解,发现这个题最主要的是要看破这个背包问题! 首先第一天是无法赚差价的,枚举天...
2019-08-13 21:40:52 133
原创 线性基(2019.8.12)
线性基 今天写到线性基,然后谈谈这个吧 首先,线性基是用来求最大异或和,对于一组数,如果我们要求他最大异或和的话,最朴素的想法 把每种情况列举然后搜索(或者用循环,1-2的n次方),所以,如果数据一大,它的时间复杂度就爆了(1024的五次方QAQ) 所以线性基为了解决这个问题,起到了很好的作用 我们知道,一组数的异或和,是有规律的啊,比如说,你要求 000011001 100100101 111...
2019-08-12 19:44:24 116
原创 洛谷P2938(2019.8.11)
今天写了洛谷P2938 第一次看这个问题的时候觉得这是一个分组背包,类似于金明的预算方案或者说是软件安装这样的题目 然后呢,把树形DP代码敲上去,发现只有23分QAQ 原因在于,这个数据规模太大了,这样会超时。。。 这个题,要考察的点还是蛮多的 考虑到数据大,而且这个树的深度也就那么2层,用树形DP是没必要的。 所以考虑二维DP dp[i][j]表示的是选择前i件物品花费j所得到的最大收益 然后内...
2019-08-11 22:12:38 211
原创 初学Lucas定理(2019.8.10)
昨天怀着忐忑不安的心情来了学校 今天晚上看了一下Lucas定理 好像是这么一回事 Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p) 也就是说从n中取m个数模p A=a[n]a[n-1]…a[0],B=b[n]b[n-1]…b[0]。则组合数C(A,B)与C(a[n],b[n])C(a[n-1],b[n-1])…*C(a[0],b[0]) modp同余,也就是说: L...
2019-08-10 21:27:51 156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人