08 2018 档案

该文被密码保护。
posted @ 2018-08-22 13:38 longint 阅读(5) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-08-21 19:57 longint 阅读(3) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-08-16 21:48 longint 阅读(11) 评论(0) 推荐(0) 编辑
摘要:开始想了一个七维dp,发现会算重 然后就去看题解了(真颓,没希望了) 显然直接做没啥希望,考虑最基本的容斥 用10^n-不包含(X,Y,Z)的方案数 考虑一个神奇的状压1用001表示,2用010表示,3用100表示。即i用(1<<(i-1))表示 在这里加法操作也有其他的定义 比如:我们"2+3”表 阅读全文
posted @ 2018-08-16 20:23 longint 阅读(197) 评论(0) 推荐(0) 编辑
摘要:考虑一个转化 我们用p[i]表示权值为i的在原序列中所在的位置为p[i] 这样我们得到了一个p序列 显然的一点原序列操作后字典序最小等价于让p序列操作后字典序最小 我们考虑p序列怎么进行操作 显然的相当于可以交换任意两个相邻的数,前提为两个差值>=k 显然这种操作相当于拓扑排序 考虑i和j(指的是权 阅读全文
posted @ 2018-08-16 20:10 longint 阅读(118) 评论(0) 推荐(0) 编辑
摘要:原问题等价于求 for i=1;i<n;i++ for j=i+1;j<=n;j++ do ans=ans+C(a[i]+a[j]+b[i]+b[j],a[i]+a[j]) 显然这个式子是n^2的很不资瓷 我们发现a[i],b[i]都很小所以考虑组合性质优化 我们发现这个式子其实相当于求从(-ai, 阅读全文
posted @ 2018-08-16 19:58 longint 阅读(122) 评论(0) 推荐(0) 编辑
摘要:显然我们有一个比较简单的构图 对于s[1...n]为回文串,我们可以1->n连边,2->n-1连边以此类推(这里的连边都是无向边) 显然如果n个点在同一个联通块中那么是合法的 首先我们先考虑无解情况 显然对于一张n个点的图,如果边数<n-1那么这张图一定不连通 所以如果a和b加起来奇数值大于2了,那 阅读全文
posted @ 2018-08-15 21:47 longint 阅读(147) 评论(0) 推荐(0) 编辑
摘要:AGC的题目果然都牛逼啊 像我这种智力不够的人完全做不动啊 这题考虑K是奇偶不同的情况 K为偶数枚举每一个点作为直径的中点(中心) K为奇数,枚举每条边作为直径中间边 然后往下K/2层,>K/2层的都扔掉即可 因为中心到直径两端相同,所以必须<=K/2 代码如下: 阅读全文
posted @ 2018-08-15 21:00 longint 阅读(396) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-08-15 18:26 longint 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-08-15 16:53 longint 阅读(2) 评论(0) 推荐(0) 编辑
摘要:其实就是一道暴力题目 考虑x部落和y部落,如果x人数多swap(x,y) 然后考虑算贡献 枚举x部落中的每一个人 ans=对于每一个人y中比这个人弱的个数*val[x]+比它强的人和(前缀和一下) 显然这是会被卡的 但是只要加个map记录一下已经算过的x,y就行了 代码如下: 阅读全文
posted @ 2018-08-12 22:32 longint 阅读(123) 评论(0) 推荐(0) 编辑
摘要:很没意思的题 开始看A的人少,点进去发现简单题。。。 直接动态维护一下倍增数组 新的直径只可能是原直径或者新加入点和原来直径两个端点构成的路径 代码如下: 阅读全文
posted @ 2018-08-11 19:29 longint 阅读(87) 评论(0) 推荐(0) 编辑
摘要:考虑对于每一个i作为右端点,使得它这段和最大的j是[i-R,i-L]区间内sum[j-1]最小的 所以我们开一个堆来维护一个四元组信息(i,l,r,t) 表示右端点为i,左端点取值范围在[l,r]中,当前这段区间中sum最小值为t 显然t取了,这个四元组就被分裂成两个了,为(i,l,t-1,rmq) 阅读全文
posted @ 2018-08-11 19:26 longint 阅读(92) 评论(0) 推荐(0) 编辑
摘要:代码能力练啊练 写了道没有任何思维的题 代码如下: 阅读全文
posted @ 2018-08-11 19:23 longint 阅读(84) 评论(0) 推荐(0) 编辑
摘要:线段树简单题 对于线段树每个区间维护一个矩阵a[i][j]表示仅用这个区间内的数,从状态i得到状态j并且合法至少要删除几个 0对应没有,1对应“2”,2对应“20”,3对应“201”,4对应“2017” 合并矩阵a[i][j]=min(a[i][j],a[i][k]+a[k][j]) 代码如下: 阅读全文
posted @ 2018-08-11 19:21 longint 阅读(182) 评论(0) 推荐(0) 编辑
摘要:暑期的训练发现DP不行,万年写不对系列已经上线 这题其实类似dp问题中的整数划分问题 考虑用dp[i][j]表示分成了不同的i个数,和为j 考虑转移dp[i][j]=dp[i-1][j-i]+dp[i][j-i] 考虑意义,dp[i][j-i]表示给当前i组全部都加上1 dp[i-1][j-i]表示 阅读全文
posted @ 2018-08-09 21:51 longint 阅读(128) 评论(0) 推荐(0) 编辑