上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: 题意: 给你n个数,然后给你q个询问,有两种询问: a: 表示在右边插入一个数 c:表示从左边拿出一个数,然后输出; 思路: 一开始在想,自己手上的黑科技:线段树和树状数组 线段树上的操作: 求区间最大,没说区间第几个啊; 树状数组: 搞一发前缀和,妈个鸡,树状数组还需要知道下标和位置; 还有什... 阅读全文
posted @ 2016-11-18 19:39 see_you_later 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 前言(萌新感想): 以前用STL的queue啊stack啊priority_queue啊,一直很想懂原理,现在终于课上到了priority_queue,还有就是下周期中考,哈哈,所以写几篇blog总结一下。 这里萌新讲下堆这个好东西; 堆的定义: 如果搞过ACM的童鞋应该会使用STL的prio... 阅读全文
posted @ 2016-11-18 15:47 see_you_later 阅读(183) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std;typedef long long LL;const int N=1e2+10;int main(){ int T,cas=1,n,x; scanf("%d",&T); while(T--) { sc... 阅读全文
posted @ 2016-11-17 22:41 see_you_later 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个数,然后对于D区间的数求一个最大差值 思路: 区间最大最小。。。我居然没想到线段树。。。 #include using namespace std;typedef long long LL;const int N=1e5+10;struct SegT{ int left; ... 阅读全文
posted @ 2016-11-17 21:19 see_you_later 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一颗n-1条边的树,求某两点的最长路 思路: 随便找个根,然后我们从根往下搜,对于每个结点会出现多个子节点或者一个子节点或者没有结点, 多个子节点的话,就以他为中间点,在子节点中找两条最长的,加起来比比; 直接搜吧; 哎好难讲啊,其实画个图就很容易了;(直接注释在代码里面吧。。 ... 阅读全文
posted @ 2016-11-17 16:29 see_you_later 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题意: 对于每个数求除1和本身的约数和,然后求前n个数的所有这种约数的和; 思路: 首先可以知道对于约数考虑就好了, 对于1-n的约数,n/2-1(减1是因为2不算啊)就是约数为2出现过的次数 如果n不是很大,那么直接sum就好了; 但是这里n很大,所以搞sqrt(n),对于>sqrt(n)的约... 阅读全文
posted @ 2016-11-17 01:37 see_you_later 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 基础矩阵快速幂何必看题解 #include using namespace std;/*0 1 2 3 4 5 6 70 0 0*/const int mod=10007;struct asd{ int num[4][4];};asd mul(asd a,asd b){ asd an... 阅读全文
posted @ 2016-11-16 22:02 see_you_later 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 前言,以前搞过线段树,二叉树觉得也就那样= =、然后数据结构的课也没怎么听过,然后下周期中考。。。 本来以为今天英语考完可以好好搞ACM了,然后这个数据结构期中考感觉会丢人,还是好好学习一波。二叉搜索树(BST,Binary Search Tree) 又称二叉排序树或二叉查找树。二... 阅读全文
posted @ 2016-11-16 09:29 see_you_later 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/jackge/archive/2013/04/29/3051273.html 算法:最短路和次短路。Dijkstra算法。采用邻接表建图。 总结:不要用邻接矩阵。因为有重边。 dis[x][2]:dis[x][0]表示起点到x的最短路、... 阅读全文
posted @ 2016-11-15 22:33 see_you_later 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题意: 求 1-N 的第二长路,一条路可以重复走 if two or more shortest paths exist, the second-shortest path is the one whose length is longer than those but no longer th... 阅读全文
posted @ 2016-11-15 21:28 see_you_later 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意:如果存在一个串是另一个串的公共前缀就是NO,否则就是YES思路:利用字典树的特性搞搞就好了#include using namespace std;const int N=1e5+10;//一共有n(10000)个串,每个串有10个数字struct Trie{ Trie* next[... 阅读全文
posted @ 2016-11-15 19:14 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: //左根右void InorderTraversal( BinTree BT ){ if(BT) { InorderTraversal(BT->Left); printf(" %c",BT->Data); InorderTraversal(B... 阅读全文
posted @ 2016-11-14 22:03 see_you_later 阅读(152) 评论(0) 推荐(0) 编辑
摘要: //二叉树的叶结点:度为0的结点。void PreorderPrintLeaves( BinTree BT ){ if(BT==NULL) //如果传下来根节点就是空,直接返回; return; //如果存在子节点,一直下去 if(BT->Left) ... 阅读全文
posted @ 2016-11-14 21:06 see_you_later 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题意: 求最长公共子序列,并且这个子序列是字典序最小。 思路: LCS附一个值,dp[i][j].first代表以i,j的LCS的长度,dp[i][j].second代表LCS结尾元素,然后利用路径输出就好了; 竖着传就是1,横着就是-1,斜对角就是0; 然后就wa掉了。。。因为单一的判断结尾肯... 阅读全文
posted @ 2016-11-13 19:46 see_you_later 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 思路: ---说给自己 一开始想的是从1-h*w标记整幅图,建图是星号和 {他,与他相连的星号} 建边,肯定要去匹配"*"啊,所以空格一定不会去造,然后就理解成了最小点覆盖,然而对于最小点覆盖,对于 孤立点(也就是没有连出去的边) ,这样就错了。。。但是对于这个思路还是打完了,然后发现错了。。。... 阅读全文
posted @ 2016-11-09 21:08 see_you_later 阅读(118) 评论(0) 推荐(0) 编辑
摘要: ------------- 组队赛入的坑: 2016-11-19 没有签到/// 比赛一开始对于一道题目没有思路,谁觉得没有思路,谁就去读别的题; 题意一旦确定,先对题目给出的案例“自圆其说”,然后考虑几个特殊情况; ------------ 各种大大小小比赛中的手残: 数据考虑了LL,然而函数... 阅读全文
posted @ 2016-11-09 17:39 see_you_later 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 思路: 找题4级做做。。。然后找了题最水的。。 = =感动。。。居然是一下子【记】得了做法。。。 dp一下,枚举列的起点和终点,然后求和这一段,然后对这一大列就是求个最大字段和; #include using namespace std;typedef long long LL;const in... 阅读全文
posted @ 2016-11-08 21:35 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:略(忙着准备文化课。。。明天期中考啊。。。。 思路: 正解就是染色,2-sat搞; AC代码(虽然是错误的。。。数据水(过踏马的也行啊,起码打脸他啊!) 4 3 1 0 1 2 2 3 3 4 4 这个就挂了; #include using namespace std;typede... 阅读全文
posted @ 2016-11-06 20:22 see_you_later 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个坐标系,坐标系上有N个点,然后让你用最少的线,把这些点全部连起来; 思路: (1+15)*15/2=90条线; 然后线上有哪些点就可以知道; 然后按照线上点的个数排序,然后删掉这个线,看一下是否满足; 但是这种想法不就是每次拿点最多的线,然后判断是否满足,这样的话很明显就不行... 阅读全文
posted @ 2016-11-06 19:49 see_you_later 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 思路: 把fm看成01,f-1,m-0; 不能存在101,111; dp[i]代表第i结尾的方案数; ①:结尾是0一定行:只要i-1序列里添个0就好了,dp[i]+=dp[i-1]; ②:结尾是1 如果***10或者***11的序列,加上1就不行; 那我扩大,... 阅读全文
posted @ 2016-11-05 22:40 see_you_later 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意: 从a串和b串中顺序地取出是否能组成c串; 思路: dp[i][j] 代表从a串中取了i个,b串中取了j个的情况; #include using namespace std;typedef long long LL;char a[220];char b[220];char c[420]... 阅读全文
posted @ 2016-11-05 21:00 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 入门...还在学习中,先贴一发大牛博客 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题目大意: 给一个数字n,范围在1~2^63-1,求1~n之间含有49的数字有多少个。 思路: 经典的数位DP,学习了一下,看的别人... 阅读全文
posted @ 2016-11-03 22:30 see_you_later 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 等比式子: Sn=(a1-an*q)/(1-q) n很大,搞一发快速幂,除法不适用于取膜,逆元一下(利用费马小定理) 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)。刚好在本道题目一样适用,mod=1e9+7就是质数,那么gcd也就是=1,OK,那么b*k=1 这... 阅读全文
posted @ 2016-11-02 19:03 see_you_later 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个怪的生命值,然后n个怪手里有一把枪,给出n*n的矩阵代表第i个怪对第j个怪的伤害值; 现在让你去干掉n个怪,只能平A使怪扣一滴血,干掉目标后, 可以把这个目标的武器拿进口袋然后用这个武器打别的怪 参考:大牛博客 思路: 明明也直到了状压,然后每次对于一个状态; 枚举最后被干掉的怪... 阅读全文
posted @ 2016-11-01 22:41 see_you_later 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 思路: 我们可以思考对于仅仅两个元素来说,A,B; 先选A的话是会 A.b+B.a; 先选B的话是会 B.b+A.a; 所以哪个小哪个就放前面; #include #include #include #include #include #include #include using names... 阅读全文
posted @ 2016-11-01 20:56 see_you_later 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 主要还是i^4化成一个(i+1)^4没遇到过,还是很基础的一题矩阵快速幂; #include using namespace std;typedef long long LL;const LL mod=2147493647;const int N=1e5+10;struct asd{ LL... 阅读全文
posted @ 2016-10-31 22:03 see_you_later 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 自己模拟,全靠体会~ #include #include #include #include #include using namespace std;typedef long long LL;const int N=5e4+10;LL a[N];int main(){ int n; ... 阅读全文
posted @ 2016-10-31 21:48 see_you_later 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 思路: 对于这个高度往左能延伸最远x,往右能延伸最远y,(x+1+y)*w; 利用单调栈就行了; #include #include #include #include #include using namespace std;typedef long long LL;const int N... 阅读全文
posted @ 2016-10-31 20:35 see_you_later 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 思路: 预处理一下素数数组,然后暴力计算就好了。 类似处理素数因子; #include #include #include #include using namespace std;typedef long long LL;const long long INF=0x3f3f3f3f;const... 阅读全文
posted @ 2016-10-31 17:49 see_you_later 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 思路: 缩点,计算入度为0点的个数即可; #includeusing namespace std;typedef long long LL;const int N=1e5+10;struct asd{ int to; int next;};asd q[N*4];int head[N... 阅读全文
posted @ 2016-10-31 17:46 see_you_later 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意: n个格子,每个格子有一个值。从1开始,每次扔6个面的骰子,扔出几点就往前几步,然后把那个格子的金子拿走; 如果扔出的骰子+所在位置>n,就重新扔,直到在n;问取走这些值的期望值是多少; 思路: 【1】 【2】 【3】【4】 【5】 【6】 【7】 【8】 【9】 //格子和值都是一样,所... 阅读全文
posted @ 2016-10-31 16:34 see_you_later 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 思路: 利用克鲁斯卡尔算法,最小生成树把边从小到大排序,然后Union; 最大生成树就是把边从大到小排序,然后Union; #includeusing namespace std;typedef __int64 LL;const int N=15000;struct asd{ int u,... 阅读全文
posted @ 2016-10-31 16:16 see_you_later 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个数,问你有多少种进制对n的表示,存在后导零; 比如30:用3进制表示: 1010 思路: 我们发现,就是一个数的约数就能对n表示最后存在后导零; 计算[2 ,n]之间的n的约数个数。 我们预处理1,大于1说明存在>sqrt(n)的素数,ans*=2,然后乘法原理最后会有一个情... 阅读全文
posted @ 2016-10-31 16:11 see_you_later 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 思路: 暴力整个图,以这个为起点,然后看一下有没有找到一条路是会指向自己且元素个数>=4; #include using namespace std;typedef long long LL;const int mod=1e9+7;const int N=55;char ma[N][N];boo... 阅读全文
posted @ 2016-10-30 22:33 see_you_later 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 之前只学了个强连通Tarjan算法,然后又摸了缩点操作; 然后今天在lightoj摸了一道模板题,是求所有桥的题; 然后发现,要把:割点,割点集合,双连通,最小割边集合(桥),点连通分量,边连通分量都学一下。 -------------------- 首先这个求割点是在无向图里面实现的(所以看到... 阅读全文
posted @ 2016-10-30 22:11 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意: 据说就是找桥; 思路: 无敌RE......是cmp写挫了...现在数组开太大了 模板题; #include using namespace std;typedef long long LL;const int mod=1e9+7;const int N=1e5+10;struct n... 阅读全文
posted @ 2016-10-30 10:38 see_you_later 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 完全背包的变形; 这些数字可以取多次,dp[i]代表前 i 物品组成N时的方案数。 #include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;c... 阅读全文
posted @ 2016-10-29 22:29 see_you_later 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 说些感触。 = =、哎,说起来重现还真是好气啊。 出去的大二过去两题打铁,今天我们队边玩边打过了4题,有点不甘心啊。= =、对教练略无奈。 ------------------------- 比赛经验: 今天一开始,我洗完澡回来,比赛已经开始15分钟了,yhp和zmy都还在看题意,然后zmy在我... 阅读全文
posted @ 2016-10-29 19:18 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 引自:wonter巨巨的博客 定义 dp[i] := 以数字 i(不是下标 i)为结尾的最长上升长度 然后用线段树维护 dp[i]: 每个节点维护 2 个信息,一个是当前区间的最大上升长度,一个是最大上升长度的方案数, 这里再详细说下这篇题解。。。也是弱弱自己的理解吧。。。 以1-n的值为线... 阅读全文
posted @ 2016-10-28 12:47 see_you_later 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 先说两个函数 unique函数: 去重函数 使用方法:unique (首地址,尾地址); 功能:去除相邻的重复元素(只保留一个),并把重复的元素放在最后; unique 是返回去重后的尾地址; lower_bound() 函数,在前闭后开区间进行二分查找 lower_bound() 是返回>=... 阅读全文
posted @ 2016-10-28 10:05 see_you_later 阅读(142) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页