上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页
摘要: 题意: 给出n,a,b以及n个整数a1,a2…an, 可以对数组进行以下两种操作; (1)花费len*a的代价删除连续的len个数,len1; 求最小花费 思路: 因为删除操作不能一下子删完,所以肯定会剩下一个,那么就会是头一个或者最后一个。所以剩下的数可能有a[1]-1,a[1]... 阅读全文
posted @ 2016-09-23 08:44 see_you_later 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题意: 在原字符串中修改数量最少,然后保证最小字典序。#include using namespace std;typedef long long LL;const int N=2e5+10;int a[100];char s[N];char ans[N];int main(){ ... 阅读全文
posted @ 2016-09-23 08:37 see_you_later 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题意: 查询数 和 最大的队列容量+1; 按时间顺序 ti代表,第i个出线的时间; di代表,第i个需要处理的时间; 对于第i个输出他所需要的时间完成,或者拒绝进入输出-1; 思路: 真是MDZZ了,模拟。 主要就是开个队列存了一下每个任务结束时间,然后对于每个任务把队列里小于该任... 阅读全文
posted @ 2016-09-23 08:33 see_you_later 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个点,每个两两之间有一条路,给出每条路开放的花费,每条路只能打开关闭一次,然后m天里给出一个区间代表这条路必须在该天开放,求每天需要的花费。 思路: 这是一题纯粹用线段树搞的题。 我们可以看到:某第i个区间[s1,t1]的打开,如果存在第k(1=s1 , t1>=t2)... 阅读全文
posted @ 2016-09-23 08:23 see_you_later 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 41Acode 好像只要前一个字符串存在下一个字符串的头单词就YES;#include using namespace std;typedef __int64 LL;const int N=1e2+10;int main(){ int len,i,j; char s1[... 阅读全文
posted @ 2016-09-21 22:33 see_you_later 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你n个人的高度, 再给出一个值代表该高度下有前面比他高的 或 后面比他高的人数, 求满足条件下的最小字典序, 不行的话输出”impossible” 思路: 对于最小字典序,对于每个位置的最小是=min(k,n-i-k); 先离线排序一下,然后对每个人操作,如果(n-i-k... 阅读全文
posted @ 2016-09-21 22:29 see_you_later 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题意: 现在 m个考生人需要坐在有n个座位的圆桌上。 你需要安排位置,使得任意两个考生之间相距至少k个位置。 桌子有编号,考生a和b交换位置视作一种方案,问有多少方案,mod 1e9+7。 (0 using namespace std;typedef long long LL;co... 阅读全文
posted @ 2016-09-21 22:25 see_you_later 阅读(134) 评论(0) 推荐(0) 编辑
摘要: mdzz,今天好烦啊,连特么暴力都不会写了。 题意是:给你n个数(#include #include #include #include #include #include using namespace std;#define LL long long#define INF 0x... 阅读全文
posted @ 2016-09-21 22:13 see_you_later 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 转自: http://blog.csdn.net/qq_26071477/article/details/51892995#includetypedef long long ll;ll check(ll n){ ll res=0; for(ll k=2; k*k*k=l... 阅读全文
posted @ 2016-09-20 22:26 see_you_later 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意(来自网络): 现在有k件商品,每个商品的位置已经告诉你了 现在有n个人,每个人有m个需求,每个需求就是要把第a[i][j]个物品拿到第一个位置来 他的代价是pos[a[i][j]] 问你所有代价是多少 思路: 就是每次+,每次调整,还有滚动数组这种不错欸~#include u... 阅读全文
posted @ 2016-09-20 22:22 see_you_later 阅读(203) 评论(0) 推荐(0) 编辑
摘要: sort一发,去重#include#include#include#include#include#include#includeusing namespace std;const int N=55;int a[N];int n;int main(){ scanf("%d",... 阅读全文
posted @ 2016-09-20 22:20 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 通式:φ(x)=x*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1... 阅读全文
posted @ 2016-09-20 22:19 see_you_later 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一幅图,然后起点终点,然后有一个条件是可以使某条边的花费减半,求最短路的最小花费。 思路: (来自大哥) 最短路的时候多一维,途中是否有花费减半的边; 然后转移,如果上一条有减半的,这一条一定只能转移到不能减半,上一条没有减半的,这一条可以减半也可以不减半。 具体处理就... 阅读全文
posted @ 2016-09-20 22:17 see_you_later 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一副图,给出的点两两之间的距离是abs(pos1-pos2),然后给你n个数是表示该pos到x的距离是1. 思路: 直接建边,跑spfa就好了。虽然说似乎题意说边很多,其实只要建一下相邻的点的边就好了,这样的图的性质还是得到了;// ... 阅读全文
posted @ 2016-09-20 22:11 see_you_later 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个数,然后按照冒泡排序的手段,只能往后移,然后问你最小几轮可以实现1-n 思路: 后边有比他小的数的话就一定要到后面去 求一下有多少个 PS: 如果还可以往前移,那么我们可以求一个最大确定个数(LIS的个数),然后除外的就一定要移。#include using name... 阅读全文
posted @ 2016-09-20 09:20 see_you_later 阅读(79) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std;typedef long long LL;const int N=1e4+10;struct asd{ double time; double x;};asd d[N];int n;bool cmp(asd a,... 阅读全文
posted @ 2016-09-19 22:31 see_you_later 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个数,问有多少方案满足取几个数的异或值>=m; 思路: 背包思想,每次就是取或不取,然后输出>=m的方案就好了。#include using namespace std;typedef long long LL;const int N=2097150+10;LL dp[... 阅读全文
posted @ 2016-09-19 22:28 see_you_later 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题意: n*m的矩阵 k种颜色 每种颜色有c[i]个 上下左右相邻的格子不能一样的颜色 问你有没有一种染色方法,有的话输出方案。 思路: 暴搜啊,n,m都才5,做完以后大哥的剪枝是奇偶剪枝,其实画完图我就应该想到了。然后自己想了好多,关于奇偶剪枝,自己也就做了HDU1010而已吧。... 阅读全文
posted @ 2016-09-19 22:26 see_you_later 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 打表+二分#include using namespace std;typedef long long LL;const LL inf=1e18+100;LL a[20000];int num;void init(){ num=0; LL i,j,z; for(i... 阅读全文
posted @ 2016-09-19 16:34 see_you_later 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 基础题。。 wa在n的范围需要用long long = =、长个记性#includeusing namespace std;typedef long long LL;const LL mod=1e9+9;struct asd{ LL a[2][2];};asd mul(as... 阅读全文
posted @ 2016-09-19 15:44 see_you_later 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意: 第一行项目数; 第二行每个工人的Hire Salary Fire money 第三行每个项目需要的人的数量; 工人在hire/fire的时候要付出额外的钱,如果已经hire了还没有fire就一直会付salary求一个最小开支。 思路: 这题因为感觉就是DP,所以也没想贪心。。 H:hi... 阅读全文
posted @ 2016-09-18 23:33 see_you_later 阅读(127) 评论(0) 推荐(1) 编辑
摘要: 转自:http://blog.csdn.net/fengdian29147001/article/details/11992755 给一个数X,len=log10(X)+1就是X这个数的长度 ①:当N的值不超过10^6时 那么N的阶乘长度=log10(1*2*3*4*……*N)+1=log1... 阅读全文
posted @ 2016-09-18 11:01 see_you_later 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意:n个点m条无向边的图,找一个欧拉通路/回路,下标是p1,p2,p3…pt,然后使得ap1XORap2XOR…XORapt这个值最大。 思路: 首先要判断一下这个图是不是联通的,用并查集就好了,然后有个注意点就是可能是单个独立点; 然后再判断是不是欧拉通路,不是也不行; 最后计... 阅读全文
posted @ 2016-09-17 19:48 see_you_later 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 雨巨的UVA的C++题集英文真长… 题意: 有两本字典,第一行是旧字典,第二行是新字典。 每行不超过100个字符,没有空格,两本字典都可以是空的; 新key:+ 缺key:- 值变 :* 思路: 具体见代码,具体参考http://blog.csdn.net/acvay/artic... 阅读全文
posted @ 2016-09-17 10:55 see_you_later 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题意: 每次方案一个或多个子序列; 每个子序列要整除m 认为分割不同,子序列边界的不同就是不同; 1246有4个 1246 12 46 124 6 12 4 6 思路: 先从整体考虑,因为取膜适用于加法,所以一个数拆分成两个数%m==0就代表这个数%m一定=0; 再考虑把原串划分成... 阅读全文
posted @ 2016-09-16 22:46 see_you_later 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 具体题解又要搬大哥的了,嘿嘿~ 请点击:G点我 这道题目的难点就是同一家公司的路直接走不需要再花费,然后多了一个公司这个东西,这个不像是边的副权值(瞎说的)之类的东西,这是对于路来说的,路的属性。。。 其实稀里哗啦说了那么多,真的觉得这个方法实在是太棒了; 将点和公司组合构造新点,... 阅读全文
posted @ 2016-09-16 22:24 see_you_later 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 这篇lazy讲的很棒: https://www.douban.com/note/273509745/ if(tree[rt].l == l && r == tree[rt].r) 这里就是用到Lazy思想的关键时刻 正如上面说提到的,这里首先更新该节点的sum[rt]值, 然后更新... 阅读全文
posted @ 2016-09-15 20:28 see_you_later 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两行数字,n个m个,然后给你k条线直接把两个数连起来,问有多少个交叉的 思路: 假定上一行是起点,下一行是终点。 把路按照起点从大到下排序, 然后可以直接对每条路查询,这条路目前的交叉数,等于sum[终点-1]条路相连, 因为是起点是从大到小,终点是取一个前面点的路,所... 阅读全文
posted @ 2016-09-15 20:25 see_you_later 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题意: 计算一个序列里有多少个上升子序列 思路: 先离散化一下,按照值排序,如果相同的就按照坐标从大到小排序,这样就可以避免重复计算。 树状数组存的是以a[i]结尾的子序列之和; dp[a[i]]=sigma(a[i]-1)+1; OK,还是很简单的;#include using ... 阅读全文
posted @ 2016-09-15 20:23 see_you_later 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 妈蛋wa了两次。。 时尚的定义是length大于1的要破个洞,一定要破个洞。。 According to rules of the Berland fashion, a jacket should be fastened by all the buttons except only... 阅读全文
posted @ 2016-09-14 22:14 see_you_later 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你n个数,然后让你自己选择X,先选择一些+一次;然后选择一些-一次。 思路: 首先要去判断是不是不需要处理或者处理一次的情况; 其实这样的话,你不可能选x然后最小和最大都加减一次,所以肯定是(min+max)/2; 所以在判断一下;#include using names... 阅读全文
posted @ 2016-09-14 22:10 see_you_later 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题意: T次操作; +的话就是往 multiset 塞进一个; -的话就是往 multiset 去除一个; ?操作 思路: +和-操作就是处理字符串直接实现一个原字符串改成”01“的映射, 然后去问下,对于每个数字可以搞成18个长度的,然后+1,然后询问一下就好了; 中间如果碰到1... 阅读全文
posted @ 2016-09-14 22:05 see_you_later 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 看了这篇。。 http://blog.csdn.net/queuelovestack/article/details/52503162 直接就是从小到大,那么每次按最大的递增顺序上去,就是了。 因为每次只能取那么大,符合三角形三边关系,也不会避免每次拿小了。#include usi... 阅读全文
posted @ 2016-09-14 09:24 see_you_later 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意: 题意: 最少需要几步改变能够使得按照原序列的走法从起源走到起源; 思路: 长度奇数肯定不行 偶数的情况下。。 其实题意转变就是有4个数a,b,c,d,在最小的改变下,使a==b,c==d; 那么就是很明显的两两相差除以2就是答案;#include using namespa... 阅读全文
posted @ 2016-09-14 08:52 see_you_later 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题意: 输出有多少对满足条件的(a,b) both a and b are prime; a+b=n a=A[I]就好了。 都能标记何必二分…= =、我比较蠢。。 然后是内存爆了。。 后来标记的需要开bool,而且那个记录素数的数组最好开小; 以后int a[1e7]要么就不开,要... 阅读全文
posted @ 2016-09-13 21:03 see_you_later 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意: 有M个限制,每个限制有l,r,q,表示从a[l]~a[r]取且后的数一定为q,问是否有满足的数列。 思路: 看到大牛说是线段树,线段树对于区间操作,印象中乘啊,+啊,-啊都不错,但是并没有就是对于这个位运算就不懂了; 这题的题意就是构造,大致思路是 每条限制是对于每个区间处... 阅读全文
posted @ 2016-09-13 20:05 see_you_later 阅读(265) 评论(0) 推荐(0) 编辑
摘要: next_permutation的粗讲来自窝bin博客 两个重载函数,第二个带谓词参数_Comp,其中只带两个参数的版本,默认谓词函数为”小于”. 返回值:bool类型 分析next_permutation函数执行过程: 假设数列 d1,d2,d3,d4…… 范围由[first,l... 阅读全文
posted @ 2016-09-13 18:10 see_you_later 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 思路: 对当前值查找最近满足位置; 利用RMQ求出区间最大最小值,再枚举右端点,二分区间找到满足要求的最大区间累加 阅读全文
posted @ 2016-09-12 22:23 see_you_later 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 全部从我大哥那里学习得来。。 一开始硬着头皮就是根据思路上线段树,明知是T还要写(因为线段树还不是很熟,趁机练一发) 后来果然T了,然后就去学了一发RMQ的ST算法,查询是O(1)。 ST算法主要: //把dp[i,j]平均分成两段 //(因为dp[i,j]一定是偶数个数字),从 ... 阅读全文
posted @ 2016-09-12 21:44 see_you_later 阅读(109) 评论(0) 推荐(0) 编辑
摘要: ST算法;参考自:http://blog.csdn.net/sdj222555/article/details/7875575 主要是查询可以做到O(1),先预处理,用一个DP解决。 设a[i]是区间最值的数列,f[i,j]表示从第i个数起连续 2^j 个数中的最大值。 例如: 在... 阅读全文
posted @ 2016-09-12 20:41 see_you_later 阅读(173) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页