思维
文章平均质量分 59
1
__meteor
对于未来, 我只是一个孩子;
展开
-
Problem-330A-Codeforce Cakeminator(思维)
A. Cakeminatortime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a rectangular cake, represented原创 2017-10-01 10:22:53 · 301 阅读 · 0 评论 -
HDU 5009(dp + 双向链表的巧妙运用)
http://acm.hdu.edu.cn/showproblem.php?pid=5009这个题转移好想,时间优化不好想, 看了别人的思路,用双向链表优化,自己想到去链表里查找已经出现的元素也会花很多时间,一直没想出来,看了代码才知道,可以用map存一下前一个的位置,当有重复出现的时候, 只要将那个元素的删掉即可,也就是把他的前驱和后继相连,也就是为什么用双向链表了。因为如果一个一个涂也...原创 2018-09-07 15:25:39 · 213 阅读 · 0 评论 -
HDU6212 区间dp 好题
传送门思路:要是对原串区间dp感觉无从下手,需要重要的一步就是转化,转化成连续的01数量串,比如10010=1211这样的话每隔一个就是同一类的。对于单个数字,需要的就是3-a[i],对于一个区间,可以由三类转移1. 把区间分成 两份 例如 11 00 ans=22.中间消去两头相遇消去 例如11 00 1 ans=13.三块相遇消去 例如 1 00 1 ...原创 2018-09-13 15:34:46 · 165 阅读 · 0 评论 -
codeforces 1046_problem_A AI robots (cdq分治)
传送门题意:给n个机器人,机器人都有自己的位置x,可见范围r,智商q,问两个机器人互相可见,并且智商相差不多于k的对数有多少。思路:运用分治思想,第一维对于r非递减排序,分治,考虑对于左半部分的每一个机器人,右半部分有多少个和它配对的,因为r及从小到大排序,所以只要左能看见右,右就一定能看到左,第二维对q排序,然后用树状数组维护x,对于q要保证是和枚举的左边的那个机器人智商保持在k的范...原创 2018-09-25 14:08:54 · 335 阅读 · 0 评论 -
CF 570E dp递推
题意:给一个n*m的小写字母地图,找从(1,1)到(n,m)点非升路径,且路径组成的字符串是回文串的路径个数。思路:考虑从两端同时走,然后在中间相遇,走的步数是确定的,为n+m-1,所以只要两边同时走(n+m)/2步就行;考虑dp递推,只要条件限制好,是可以递推的设dp[step][x1][y1][x2][y2]为走step步到达p1,p2两点匹配的路径个数。转移方程就是...原创 2018-10-07 21:33:48 · 203 阅读 · 0 评论 -
codeforces 1058E (思维)
传送题意:给n个数,每个数的二进制1都可以随意的换位置,问区间异或为0的有多少个思路:该问题可以转化为他的充要条件:1.区间1的个数为偶数2.区间最大值不超过区间和的一半;偶数区间个数可以用cnt[i][2]记录以1开始,1~i中偶数和奇数区间个数,那么偶数区间就是假如现在前缀是偶数,那就加cnt偶数,反之加奇数。因为偶数=偶-偶/奇减奇对于不符合的,因为数是60位...原创 2018-10-18 11:25:34 · 250 阅读 · 0 评论 -
HDU 5514 巧妙的容斥
题意:给你一些数,对于每一个数a,可以得到t=(t+a)%m,t可以无限制算下去,问0~m-1之间能被得到的数的和。思路:根据欧几里得原理,a能得到的数就是a和m的最大公约数在0~(m-1)的倍数。所以容斥就可以算出答案,每个数的倍数等差求和。但是数据是1e9,要进行容斥的数非常多,能确定的是最大公约数一定是m的因子x,x算一遍相当于x所有的倍数都算了一遍,所以算某个因子的时候,只...原创 2018-10-10 14:06:52 · 170 阅读 · 0 评论 -
HDU - 5521 巧妙地最短路
题意:n个点,m块,块的意思就是说,在块中的点任意两点的距离都是t,问分别从1点和n点走到某个点,这个点的花费就是二者较大的,问这n个点花费最小是多少,并按字典序打印序号思路:这题头疼的就是不知道怎么建图,暴力建图会超内存,有一个巧妙的方法是将这个块中的点全部连到一个点上,每条边花费t/2,这样任意两点仍然是t的花费。这样最多1e6条边#include<bits/stdc+...原创 2018-10-10 14:19:38 · 177 阅读 · 0 评论 -
ZOJ-3543不错的dp
title: ZOJ-3543不错的dpdate: 2018-11-01 16:40:58tags:dpcategoties: “算法”题意:给长为n-1字符串,包括‘I’,‘D’,’?'三个字符,含义分别是:‘I’比前面的数大‘D’比前面的数小‘?’不受限制问题是有多少1~n的全排列满足这个关系串。思路:感觉挺难想的。设dp[i][j]代表1~i的全排列,以j...原创 2018-11-01 17:02:40 · 165 阅读 · 0 评论 -
codeforces contest 1092 -- D1 Great Vova Wall (Version 1)
click思路:用1*2的块能补成相邻差不超过1的序列;用栈模拟,如果该数和栈顶元素同为奇数或同为偶数,则消去,最终栈内的元素<=1的才是YES原因是如果是1122,则可以弄成2222, 如果是1001,先成为1111, 中间必是偶数个,所以可以11->22为什么最后size为1的时候也可以呢,因为剩下1的情况必是元素个数是奇数个的时候,所以偶数个数两两组合每次可...原创 2018-12-26 12:46:05 · 169 阅读 · 0 评论 -
计蒜客 宝藏 状压dp (遍历二进制中一的子集的小技巧)
传送门思路是参照着这个博客写的https://blog.csdn.net/a1035719430/article/details/80488083dp的一个状态是点集,这个是很好想的,但是加上路径上宝藏的数量就不好想了,因为所有路径都挖完是一颗树,我们可以用一维表示状态中最大的深度,即dp[i][s]表示深度为i,包含s集合点的时候最小值转移就是dp[i][t]=min(dp[i][t...原创 2018-09-05 09:14:09 · 324 阅读 · 3 评论 -
CodeForces - 474E dp+离散+线段树优化
这个题跟这个题类似,都是一维dp,n^2复杂度,但是需要优化,感觉这种题数据小点1e4的话优化成nsqrt(n)就可以,1e5的话,要优化成nlog(n),这个题是用线段树维护的最大值。因为一个数只能由前面1~val[i]-d,或者val[i]+d~INF转移过来,所以我只要查询值在这个范围之内dp值得最大值就好,因为值是在1e15得范围,所以需要离散化。因为要输出路径,所以用...原创 2018-09-07 19:29:04 · 207 阅读 · 0 评论 -
CF1037E图论思维(set::erase的用法)
传送门#include<bits/stdc++.h>using namespace std;#define fir first#define sec secondconst int N=2e5+10;typedef pair<int, int> pii;pii e[N];set<int> G[N];bool removed[N];int ...原创 2018-09-04 19:12:30 · 201 阅读 · 0 评论 -
Problem-330B-Ceodeforces Road Construction(思维)
B. Road Constructiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA country has n cities. Initially, the原创 2017-10-01 10:32:02 · 212 阅读 · 0 评论 -
HDU1134 Game of Connections(大数乘法+打表)
Game of ConnectionsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5079 Accepted Submission(s): 2913Problem DescriptionThis i原创 2017-11-14 17:50:40 · 175 阅读 · 0 评论 -
牛课 强迫症序列(思维)
点击打开链接这个题真的是写出强迫症来了,提醒自己当一个问题写不出来的时候一定要从反面考虑。这个题只要每次将最大的减1就好了。#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>using namespace std...原创 2018-03-27 17:01:43 · 183 阅读 · 0 评论 -
ZOJ - 3211 Dream City (贪心+dp)
思路:增长速度快的只有放在后面砍才能获得最大的收益。dp[i][j]表示从前i棵树中选出j棵树, 在前j天砍,砍得顺序就是排序的顺序#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;int T;int n, m;int dp[300][300];pair<int,int> p[...原创 2018-04-20 11:45:13 · 180 阅读 · 0 评论 -
HDU 6370(思维)
传送门思路:因为狼说什么都是可以的,所以全是狼是可以,村民为0。那问题就是转化成求铁狼的数量。我们对村民边建图,我们发现,一个连通分量要么是个基环树,要么是个树。对于基环树全是村民的话显然成立。所以不存在铁狼。对于树,必然有且仅有一个点连出去的是狼边,①如果这条边指向其他连通分量,其他联通分量完全可以都是狼,那这个人就可能是个人,所以他不是铁狼。②如果指向自己的连通分量,如果他是狼,那么这...原创 2018-08-10 14:49:27 · 326 阅读 · 0 评论 -
HDU6395 分块思想
传送门 #include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+10;const int mo=1e9+7;ll n, P, F[N], C, D, inv[N];struct Matrix{ ll m[3][3];};void init(){...原创 2018-08-15 19:04:21 · 266 阅读 · 0 评论 -
牛课暑假多校第九场H prefix sum
传送门假如a[0][1]=1,那他对后面的影响如图所示,斜着看可以发现,是杨辉三角,假如k=3,x=3,a[0][1]对他的影响是C(4, 2),a[0][2]对他的影响是C(3,2),a[0][3]对他的影响是C(2,2);所以a[0][i]对他的影响是C(k+x-1-i,k-1),,我们将式子转化为,这样对于后面的\sum可以通过树状数组维护前缀和。对于负数的组合数,,对于组合数递推公...原创 2018-08-20 18:41:16 · 168 阅读 · 0 评论 -
excel 数字字母转换
#include<bits/stdc++.h>using namespace std;const int N=1e5+10;const int inf=0x3f3f3f3f;void print26(long long sum){ if( sum==0 ) return; print26(sum%26==0 ? sum/26-1:sum/26);...原创 2019-03-10 10:57:50 · 1169 阅读 · 0 评论