上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
摘要: http://arc061.contest.atcoder.jp/tasks/arc061_b 题意: H行W列的矩阵中,然后挖了n个洞,输出j(0-9)行,对于第i行输出,有多少个3*3区域中有i个洞;思路: 对于一个黑色的格子,只有9个3*3的矩阵才能包含他。 所以只有处理m个... 阅读全文
posted @ 2016-09-12 16:36 see_you_later 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 直接暴力1e6就好了#include using namespace std;typedef long long LL;int main(){ LL a,p; int flag; scanf("%lld%lld",&p,&a); flag=0; for... 阅读全文
posted @ 2016-09-11 16:18 see_you_later 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 思路: 处理方案非常霸气啊,无奈想不到。 说是n位去m个,那么默认就是取了n-m个数字,ok,然后m#include #include #include #include #include #include #include using namespace std;#define ... 阅读全文
posted @ 2016-09-10 23:40 see_you_later 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 思路: 把k*M%N=1可以写成一个不定方程,(k*M)%N=(N*x+1)%N,那么就是求k*M-N*x=1,k最小,不定方程我们可以直接利用exgcd,中间还搞错了; //小小地讲一下exgcd球不定方程原理 对于ax+by=gcd(a,b); 我们设一下a>b,在简单直接把... 阅读全文
posted @ 2016-09-10 10:58 see_you_later 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 手动插姿势: 三分法可以应用于凸函数或者凹函数的求极值。 三分讲解:http://blog.csdn.net/pi9nc/article/details/9666627 三分模板:http://www.cnblogs.com/Hilda/archive/2013/03/02/293... 阅读全文
posted @ 2016-09-10 00:06 see_you_later 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两个集合,对于每个B集合的元素,从A集合找一个数使得a^b的二进制的1个数最少。 思路: 直接搞= =#include using namespace std;typedef long long LL;struct asd{ int num; int sum... 阅读全文
posted @ 2016-09-09 20:56 see_you_later 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 对于每个数我找一个和他相加最接近独木舟,然后ans+=1;想复杂了,直接两端来就好了。 然后两个相加如果using namespace std;typedef long long LL;const int INF=-0x3f3f3f3f;const int N=1e4+10;int... 阅读全文
posted @ 2016-09-09 20:43 see_you_later 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 很基础啊~#include using namespace std;typedef long long LL;const int INF=-0x3f3f3f3f;const int N=1e4+10;struct asd{ int left; int right; ... 阅读全文
posted @ 2016-09-09 17:41 see_you_later 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题意(来自大哥): 有两栋楼,左边一栋,右边一栋,层数从1-n,地面的标号为0,每一层有一个水果。有一只猴子在地面上,他现在要上到n层去,在第i层会吃掉水果花费一定时间。 猴子有两种方式从第i层到i+1层,一种是直接往上跳且不花费时间,另一种是花费一定时间到另一栋楼的同一层,然后花... 阅读全文
posted @ 2016-09-09 10:16 see_you_later 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 最短,两半分开走 最长,一边走,比较一下两端就好了。#include using namespace std;typedef long long LL;const int N=5e4+10;int a[N];int n;int m;int main(){ scanf("%d%... 阅读全文
posted @ 2016-09-09 09:28 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 思路: 维护一个单调递增的栈,对于栈顶元素#include#include#includeusing namespace std;typedef long long LL;const int N=1e5+10;int main(){ stackq; while(!q.e... 阅读全文
posted @ 2016-09-08 21:58 see_you_later 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题意: 题意:n个数,求某段区间的最小值*该段区间所有元素之和的最大值 思路: 主要参考:http://www.cnblogs.com/ziyi–caolu/archive/2013/06/23/3151556.html 首先我们假设第i个元素是最小的话,那么他的区间是确定的,所以... 阅读全文
posted @ 2016-09-08 21:30 see_you_later 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/alongela/article/details/8227707 单调栈与单调队列很相似。首先栈是后进先出的,单调性指的是严格的递增或者递减。 单调栈有以下两个性质: 1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减... 阅读全文
posted @ 2016-09-08 20:41 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 思路: 很显然每个连续的序列都是等差数列, 那么我们利用等差数列求和公式。 S=(a1+a1+k-1)k/2=(2·a1+k-1)*k/2;a1是首项,k是个数。 枚举k,首项最小为1,k最大,具体不说了,反正大致就是sqrt(2*n); 枚举量还是在平方以内 题外话: 这题就是没... 阅读全文
posted @ 2016-09-08 19:58 see_you_later 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题意: 略。 思路: n就10而已,没有环,搜一下就好了。。#include using namespace std;typedef long long LL;const int mod=1e9+7;const int N=10+10;const int INF=0x3f3f3f3... 阅读全文
posted @ 2016-09-08 19:09 see_you_later 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一种值E=the number of elements where ai > i.比如1 3 2 4,只有3位置是满足的,E=1。然后他会给你一个数组和一个k,问有多少个序列的E=k。 思路: 看到n和k都是1e3我觉得就应该想到n^2的复杂度上去,然后就是dp。不是说d... 阅读全文
posted @ 2016-09-08 19:00 see_you_later 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 思路: dp[i][0]代表第i个位置取1,dp[i][1]代表第i个位置取b[i]。#include using namespace std;typedef long long LL;const int N=5e4+10;LL dp[N][2];LL a[N];int main(... 阅读全文
posted @ 2016-09-08 16:24 see_you_later 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 具体思路来自相关讨论 给个不太严谨的证明思路: 第一步:证明路径可逆,也就是如果(a, b) -> (x, y)可行,则(x, y) - > (a, b)可行 这个比较直观,只需要分别由(a +b, b) (a, a + b), (a - b, b), (a, a - b)推回(... 阅读全文
posted @ 2016-09-08 10:55 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 求和符号 是数学中常用的符号,主要用于求多项数的和,用∑表示。 举例: 累乘符号 读pai,跟圆周率那个π是一样的读法,是希腊字母π的大写,符号表示Π。 举例: 数学期望 首先对于题目你先得保证每次可能结果的概率和结果要算对,或者已知; 如果随机变量只取得有限个值或无穷能按一定次序一一列出,... 阅读全文
posted @ 2016-09-08 09:18 see_you_later 阅读(1516) 评论(0) 推荐(0) 编辑
摘要: 思路: 就是先排序,然后对每个取最小的结束时间。#include using namespace std;typedef long long LL;const int N=1e4+10;struct asd{ int x,y;};asd q[N];int n;bool cmp... 阅读全文
posted @ 2016-09-08 09:14 see_you_later 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 思路: 按照终点升序,然后遍历一下就好了;#include using namespace std;typedef long long LL;const int N=1e5+10;struct asd{ int x,y;};asd q[N];bool cmp(asd a,as... 阅读全文
posted @ 2016-09-07 19:48 see_you_later 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 思路: 尺取,写挫了,debug了半天。#include using namespace std;typedef long long LL;const int N=1e5+10;char ch[N];int vis[1001];int main(){ int s,t; ... 阅读全文
posted @ 2016-09-07 18:43 see_you_later 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 思路: 自己的一点心得:中间矩阵为最终矩阵。 搞出来很简单的;#include using namespace std;const int N=1e2+10;const int mod=7;struct asd{ int num[3][3];};asd mul(asd a,a... 阅读全文
posted @ 2016-09-05 23:24 see_you_later 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 思路: 中间矩阵等于结果矩阵。 很简单的一题。#include using namespace std;const int N=1e2+10;const int mod=7;struct asd{ int num[3][3];};asd mul(asd a,asd b){ ... 阅读全文
posted @ 2016-09-05 23:10 see_you_later 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题意: 算从左往右的值,先乘后加的值,数的范围using namespace std;const int N=1e2+10;int zhi[N];char s[N];int main(){ int n; while(~scanf("%s",s)) { ... 阅读全文
posted @ 2016-09-05 22:36 see_you_later 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 思路: 大数分解k的质因子,然后质因子会有重复的,用排列组合n!/(a1!·a2!···ak!),n代表总个数,ai代表各个质因子的个数,质因子个数最大不会超过63个。 大叔分解质因子引用我bin模板。 code…..#include#include#include#include... 阅读全文
posted @ 2016-09-04 22:46 see_you_later 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 思路: 利用一个map记录初始的,利用一个map记录排序后的。#include using namespace std;mapqs;mapqe;int main(){ string s; int n; scanf("%d",&n); for(int i=0;... 阅读全文
posted @ 2016-09-04 22:28 see_you_later 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/fuyukai/article/details/50366133 题目简述: 经典题目,求一个数组中两个数异或运算的最大值。题目极其简单,但是要求的复杂度需要达到O(N * log(N)),还是比较难的。解题思路: 总的思路就是构... 阅读全文
posted @ 2016-09-03 17:28 see_you_later 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意: 略 思路: 暴力是可以的O(1e7),这里采用线段树,线段树区间查找O(logn)#include#include#include#includeusing namespace std;const int INF=-0x3f3f3f3f;const int MAXN=200... 阅读全文
posted @ 2016-09-02 18:00 see_you_later 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 思路: 首先我们能够很容易地想到,4个数的和,拆成两两相加:a+b=-c-d; 我们也能很轻松地求出两两之和,但是呢。。不同的和会存在相同的值相加,所以还要排除这个条件。具体操作就是标记一下,然后将和二分来操做#include #include #include #include ... 阅读全文
posted @ 2016-09-02 17:10 see_you_later 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 思路: 我们可以说: ①:价值大的不管时间早晚,都可以取,时间较晚的,本身就可以取,那么肯定是大的在前面取,但是在最前面那也是不对的,那么条件就是在规定的时间内,大的就是取了,因为他大,OK。 ②:只要时间允许,怎么取都无所谓,时间不允许取所有,挑大的,如果时间上满足就加了,不满足... 阅读全文
posted @ 2016-09-02 17:06 see_you_later 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 思路: = =杨辉三角的应用,组合数的应用; C(N+M,N); 逆元一发,费马小定理,OK。#include #include #include using namespace std;typedef long long LL;const LL mod=1e9+7;LL cal(... 阅读全文
posted @ 2016-08-31 23:51 see_you_later 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 思路: 很水的dp吧。。。问的都是能否组成。。 哦对,这里sum最大才2e7,不会是2e9所以放心dp#include#include #include#include#includeusing namespace std;typedef __int64 LL;const int ... 阅读全文
posted @ 2016-08-31 23:46 see_you_later 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 思路: 掐住最后一位,快速幂一发就好了#include#include #include#include#includeusing namespace std;typedef __int64 LL;int cal(int g,int x){ int ans=1; whi... 阅读全文
posted @ 2016-08-31 23:44 see_you_later 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 思路1.: 离线处理; 具体就是把岛屿离线然后按照高度排序,把query按照从高到低排序,然后每次query只要从最高的岛屿开始找起,判断条件:如果他旁边都是没有被找过的(也就是默认是海),那么数量+1,如果两边都是岛屿,那么数量-1,我们不需要判断一边是岛屿,一边是海没意义 思路... 阅读全文
posted @ 2016-08-31 23:42 see_you_later 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 思路: 就是先正常的dp一下求一个最大连续子串,然后特殊情况就是sum-最小连续子串。。 比一比谁大谁小就好了#include #include #include using namespace std;typedef long long LL;const int N=5e4+10... 阅读全文
posted @ 2016-08-31 23:40 see_you_later 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 思路: 不晓得阿,n%9==0即n数值各个位加起来要%9==0; 如果知道这个,那么%90==0就是末尾多个0就好了,那么后面就是随便搞吧;#include #include #include using namespace std;typedef long long LL;con... 阅读全文
posted @ 2016-08-31 23:35 see_you_later 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 思路: 2和5能构成0,然后就是看2和5因子组成个数,然而我们知道,1-n中2的因子数肯定>5的,所以我们只要求一下1-n中5的因子个数就好了。。。#include #include #include using namespace std;typedef long long LL... 阅读全文
posted @ 2016-08-31 23:33 see_you_later 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 直接打表构造啊#include #include #include using namespace std;typedef long long LL;const int N=1e5+10;int a[N];int d[N];void init(){ d[0]=a[0]=0; ... 阅读全文
posted @ 2016-08-31 23:30 see_you_later 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 思路: 简单的区间dp,从小区间到大区间,随便写。 还有一种是那啥,n-LCS。。。具体不说了,赶时间)))= =、#include #include #include using namespace std;typedef long long LL;const int N=1e3... 阅读全文
posted @ 2016-08-31 23:29 see_you_later 阅读(102) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页