- 博客(181)
- 收藏
- 关注
原创 day 2
平衡树 二叉查找树 我们在OI中经常需要这样一种数据结构: 一个集合支持快速插入、删除一个数字。 支持快速查找一个数字在所有已插入数字中的排名。 支持删除大小在某一个区间内的数字。 动态维护一个数列。可以在数列的任何位置插入删除,求区间和,Min,Max,进行区间翻转。 TreapSPLAY #include <cstdio>#include <cstring>#include <cm
2017-01-22 16:34:58
373
原创 day3
网络流 了解可行流,最大流,增广路,以及惨量网络的两条边 什么是割,最小割最大流定理:网络流的最大流量等于最小割的容量 DINIC算法 code// Codevs 1993#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <queue>using namespace std;
2017-01-22 15:36:18
412
原创 day 1
1.树状数组。。。 查询修改,区间查询修改 应用 求逆序对 cv 二维树状数组 2.线段树 现在我们已经掌握了构造,点修改,点查询,区间修改,区间查询五个最基本的操作 线段树的两个最重要的过程:pushdown和update 线段树的一个隐藏的重要过程——change和pushdown时都要进行的修改 所有的修
2017-01-21 07:41:03
368
原创 [SDOI2009]HH的项链
题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入输出格式输入格式: 第一行:一个整数N,表示项
2016-12-25 10:12:55
873
原创 [JSOI2008]最大数
1.给一个比较简单的做法,由于先入队的较小数,在有后入队的大数的情况下不可能为答案,所以,可以维护一个单调队列。由于单调队列中入队先后,与数的大小皆是有序的,故可以用二分查找找到单调队列中,在后l个数里,最靠近队首(最大)的数,即为答案。ps:(1)线段树常数大故此做法要快得多 (2)c++中可用函数lower_bound实现二分查找功能。#include<iostream>#include<al
2016-12-24 17:49:59
937
原创 inline
inline 说明这个函数是内联的,在编译过程中内联函数会直接被源代码替换,提高执行效率 如果类中的某个函数会被调用很多次或者放在循环中,那么建议将这个函数声明为内联,可以提高程序的运行效率
2016-11-12 17:21:22
262
原创 欧拉筛
对于任意一个合数,我们可以拆成最小质数*某个数字的形式。我们枚举『某个数字』i(区分与埃氏筛法的枚举质因数),然后再从第一个质数开始枚举,进行筛选。 为了保证每个合数只被最小质因数筛选,当我们枚举的质数可以整除『某个数字』时,如果再往大里枚举,枚举的质数就不可能是最小质数了。(挺好正的)板子int cntprime = 0;for (int i = 2; i <= n; i++){ i
2016-11-11 17:05:02
557
原创 11 11
As long as you love me,we could be starving, we could be homeless, we could be broke. 我们可以食不果腹,可以流离失所,也可以支离破碎,只要你爱我。
2016-11-11 08:26:15
329
原创 最优贸易
一开始用的zz方法做的,慢,但过了 三遍dfs可怕 找到和1连得所有边,再找和n连得,这些点就包含了所有要选的地方 此时注意一件事就是如果买的地方必须通向卖的地方,所以可以求出能通向每个点的可用点的min,这就是这个点的最优值,然后取max就好了,这里面所有点都是可以在一边dfs中求出的,难点无非就是有些点能经过多次,加一个特判就可以解决这个问题,就是如果这个点之前的路径上的min值被改变了,
2016-11-10 14:37:39
683
原创 二分
upper_bound返回查找元素的最后一个可安插位置,也就是“元素值>查找值”的第一个元素的位置lower_bound返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置
2016-11-08 14:28:05
290
原创 零食店
snackstore.in snackstore.out 时间限制:1 s 内存限制:256 MB 【题目描述】成功找到了学长之后学姐感觉到有些饿,于是决定去附近的零食店给自己和学长买些零食。 焦作市的有n家零食店,由m条道路连接着这些零食店,每条道路都有自己的长度l,每家零食店都有自己的消费指数。 由于学姐是个穷B,所以去买零食的路上不能经过某些消费指数超过一定限度的店
2016-11-06 20:26:51
896
原创 快读
inline int read(){ int x=0; char c=getchar(); bool flag=0; while(c<'0'||c>'9'){ if(c=='-') flag=1; c=getchar(); } while(c>='0'&&c<='9'){ x=(x
2016-11-06 19:32:11
2174
原创 寻找道路之注意
code #include<cstdio>#include<queue>using namespace std;struct cmp{ int z,xh;}x,y;bool operator <(cmp x,cmp y){ return x.z>y.z;}priority_queue<cmp> q;struct data{ int next,to;}e[200000
2016-11-03 17:47:39
312
原创 联合权值
好。。。 一开始做的暴力只有60分 code#include<cstdio>using namespace std;int head[200001];int len=0;struct data{ int next,to;}e[400001];void connect(int x,int y){ e[++len].next=head[x]; e[len].to
2016-11-03 07:37:02
470
原创 11 2
“人生若只如初见,何谈旧时风花雪月。爱情最浪漫的事不是蜜语甜言,不是冲冠一怒为红颜,而是忠诚与陪伴。永远不要因为新鲜感,放弃真正对你好的人。”
2016-11-02 10:02:38
275
原创 11 1 在机房 翘了近一天的课233
每次听张磊的歌都有不一样的感觉,感动越来越深,这次不一样的感觉又多了一种,so…pray for forever 今天花了很长时间,想出来了一道题的大部分,但没敢写,看完题解后悔了,以后呢,大胆一点
2016-11-01 19:36:22
254
原创 1805:碎纸机 oj
怎么说呢,思路一开始就有,就是分成几个块然后加,但水平太弱,很难实现QAQ 选择记录相加的最大上限来限制,其实挺好编的,有个条件是输出方案并且判断会不会有重复,这个。。。 终归有了思路,记录最大值(可以通过上限来求),并判断有没有重复 判重的地方又有了问题,如果在回溯过程中,ans可能会在任何区间改变,关键一步,把判重的东西改成数组。。。就行了 code#include<iostream>
2016-10-31 20:45:40
629
原创 dream it possible
I will run, I will climb, I will soar. 奔跑,攀登,努力向上 I’m undefeated 我绝不低头 Jumping out of my skin, pull the chord 身上跳跃的美妙和弦 Yeah I believe it 它是我的信念 The past, is everything we were don’t make us wh
2016-10-28 19:20:47
1295
原创 10 28
Steps can not achieve a place,eyes can reach; vision inaccessible,the spirit can fly. ” 脚步不能到达的地方,眼光可以到达;眼光不能到达的地方,精神可以飞到—–雨果 今天这句话相信一些小伙伴是看到过的,来自法国作家雨果的《悲惨世界》里面非常有哲理的一句话。(书确实很好,五星推荐阅读。)这个世界
2016-10-28 18:59:07
269
原创 Bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛
奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草。Farmer John在某个时刻看见贝茜在位置 (R1, C1),恰好T (0 < T <= 15)秒后,FJ又在位置(R2, C2)与贝茜撞了正着。 FJ并不知道在这T秒内贝茜是否曾经到过(R2, C2),他能确定的只是,现在贝茜在那里。 设S为奶牛在T秒内从(R1,
2016-10-28 18:50:05
328
原创 to distance
认识你也有半年多了吧 咱俩一开始学的目的就不太一样,所面临的压力我可能要小的多,在这方面我可能也没有太多的发言权 好多时候我早就想退了,自己又不喜欢这个,甚至可以说厌恶,和机房那些大神的圈融合不到一起,自招的那段时间也就只有和你能说说话什么的,开玩笑,甚至互黑,也算是有感情了吧。 先说一下学习的问题,暑假的时候我就告诉你文化课很重要,可能不仅是实际的重要,它也会是精神上
2016-10-27 18:52:30
311
原创 差分
用差分实现区间操作 取C数组为修改数组,C[i]表示的是i~n这些元素都加上C[i]这个数 样例: ADD(1,3,1) ADD(2,4,4) ADD(3,7,3) 我们对[L,R]区间进行加value操作,在C[L]处加上value,在C[R+1]处减去value 最后求序列的每个位置变成了多少,只要看一下这个位置上C的前缀和就可以升级版:对于一个n*m的表格,要求支持操作ADD
2016-10-26 20:37:27
1598
原创 树状数组
http://blog.youkuaiyun.com/int64ago/article/details/7429868 板子#include<iostream>using namespace std;int n,m;int c[500001];int lowbit(int i){ return i&(-i);}int add(int x,int i){ while (i<=n) {
2016-10-26 20:33:55
223
原创 10 24
When the gorgeous stage to become a memory,you do not indulge in the glory of the year,otherwise it will make you a headache. 当过去那个绚烂的舞台成为回忆,你就不要再沉浸于当年的辉煌,否则这会让你很头疼。之前看到过一句话。或许你曾站到过山顶,但是那一刻应该成为你的新起点,而
2016-10-26 17:23:53
211
原创 10 26
One today is worth two tomorrows. – Benjamin Franklin 一个今天抵得上两个明天。——本杰明·弗兰克林 明日复明日, 明日何其多? 我生待明日, 万事成蹉跎。 世人若被明日累, 春去秋来老将至。 朝看水东流, 暮看日西坠。 百年明日能几何? 请君听我明日歌!”相信这篇《明日歌》大家都很熟络,珍惜现在的每一分钟。种一棵树最好的时间是十年前,或者是
2016-10-26 17:22:13
216
原创 矩阵乘法自我总结
做了几道题,有一点感觉了吧 三个矩阵 一个转移矩阵 和 一个目标矩阵 和一个 初始矩阵 通过矩阵乘法原则使转移矩阵*初始矩阵=目标矩阵 重点是算出转移矩阵!!!
2016-10-26 16:51:27
592
原创 Xn数列 矩阵乘法+慢速乘法
题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容。 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的。小明希望你来帮他完成这个任务。现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,要你求出他们相乘的积(当然也是矩阵)。 (输入数据保证aj=bi,不需要判断)矩阵乘法的定义:矩阵A乘以B的时候
2016-10-26 16:38:09
571
原创 Fibonacci数列(矩阵乘法快速幂)
题目描述: 定义:f0=f1=1, fn=fn-1+fn-2(n>=2)。{fi}称为Fibonacci数列。 输入n,求fn mod q。其中1<=q<=30000。 输入描述: 第一行一个数T(1<=T<=10000)。 以下T行,每行两个数,n,q(n<=109, 1<=q<=30000) 输出描述: 文件包含T行,每行对应一个答案。 样例输入: 3 6
2016-10-25 19:51:29
515
转载 理解矩阵乘法
数论 blog http://www.ruanyifeng.com/blog/2015/09/matrix-multiplication.html
2016-10-25 14:27:30
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人