自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tclh123 - 悲剧的泳裤王子

ps.从前有一个人说,迎接大浪来临,最好的办法是穿两条泳裤。

  • 博客(185)
  • 资源 (1)
  • 收藏
  • 关注

原创 [专辑]树状数组[updating]

一般树状数组能做的线段树都能做,除非卡你空间。。。1、单点更新+区间查询#define MAXN 100002int a[MAXN];int n; //线段 1~ninline lowbit(int x) { return x&(-x); }int getsum(int x) // 区间查询,sum[1, x]{ int ret = 0; while(x>0

2012-09-08 20:59:40 658

原创 [专辑]计算几何初步

貌似是第一次做计算几何的题, 以前都是了解里面些概念但没做过题....主要是没精力来完善到这一块....而且比赛的时候"疲于奔命"似的做其他被人刷爆的题目.....边讲题边讲我对计算几何初步的理解.....POJ 2365 Rope求一个凸包的周长, 题目已经是按顺序给出凸包的各个点, 所以直接求邻点间距离就为切线距离.而弧长距离, 由于是内角和是2PI, 所以最后加上一个圆周长即

2012-08-17 03:05:45 907 1

原创 [专辑]线段树总结[updating]

去年半途而废了,今年打算好好把hh大牛的专题好好做一遍....债好像越累越多了...预备:1/ 结点数为4*MAXN. 为什么不是2*MAXN? 因为MAXN不一定正好是2^x, 也就是说最底下那层最多可以有约2*MAXN个数. 所以总结点就是 2*2*MAXN.2/ 一般来说, 结点有主域, 附加域. 附加域一般为一些延迟标记(用于区间更新中).3/ 更新:pushup(e)

2012-08-12 00:54:41 610

原创 Getting Started

以后有关ACM的就写在CSDN这里。有关项目、技术的,就写在那里  or 。

2012-04-09 11:57:13 520

原创 【专辑】图论复习

updating ... 05.09...08.08...10.28... 存图方法。零、连通性          无向图割点、桥          有向图强连通SCC一、最短路Dijkstra +heapBellman-Ford && SPFA Floyd最短路算法统一归纳 二、拓扑排序 toposort 三、二分图

2011-05-09 19:22:00 852

原创 基础最短路算法【渣】

重新手敲下最短路的代码。。bellman-forddijkstrafloydspfa(bellman-ford+queue)dijkstra+heap(priority_queue)怕自己堆敲不出来 - -........用的STL。拿 HDOJ 2544 验的代码。#include#include#include#include#include#incl

2013-05-18 20:53:20 925

原创 CF 300C - Beautiful Numbers [组合数求模]

数学是硬伤。分析题目后知道就是求sigma(C[i,n]%mod)1 ≤ n ≤ 106下面有两种方法,一、预处理出阶乘,直接根据组合数公式 C[i,n] = n!/( i!*(n-i)! ),由于涉及到除法取模,所以要求下逆元。62ms.#include#include#include#include#include#include#inclu

2013-05-10 17:14:57 1441 1

原创 各种排序算法

这篇东西其实是当时为了找实习而复习排序弄的,面试官无聊就喜欢问你个排序,如果你连插入排序跟选择排序都分不清楚的话还是别去找虐了。几种排序大致按算法难度、类型从上到下排。算法描述都按升序排序,复杂度都指平均复杂度。冒泡排序模拟气泡浮上来的过程,n-1趟float,时间复杂度O( n2 )选择排序,一般指简单选择排序每次在无序区中选择

2013-05-05 02:10:37 915

原创 CF水题四道

深夜无聊,cf上刷水题练python...结果发现是被练好么... 1ATheater Square#!/usr/bin/env python import math n, m, a = map(int, raw_input().split())print int(math.ceil(n*1.0/a)*ma

2012-11-13 03:26:37 1064

原创 SPOJ 42. Adding Reversed Numbers

https://www.spoj.pl/problems/ADDREV/用python写真的很短....很爽...#!/usr/bin/env pythonn = input()while n: n -= 1 a, b = raw_input().split() print str(int(a[::-1]) + int(b[::-1]))[::-1].strip('0'

2012-10-28 16:16:59 3417

原创 用python写acm / SPOJ - 1

拿acm写东西真的很练代码功底,第一次拿python写感觉不错——————————————————http://www.spoj.pl/problems/TEST/SPOJ的第一题1、在线做法#!/usr/bin/env python# -*- coding: utf-8 -*-import sysdef Rint(): return map(int,

2012-10-28 06:21:10 1409

原创 2012 ACM/ICPC Asia Regional Tianjin Online [赛后解题报告]

请原谅我是个弱逼。Pro.IDTitle4278Faulty Odometer4279Number4280Island Transport4281Judges' response4282A very hard mathematic problem4283You Are the O

2012-09-12 22:46:09 1323

原创 HDU 4282 A very hard mathematic problem [剪枝/二分]

这题暴力+剪枝就可以过,重点是一个强剪枝:当z=2时,用完全平方公式解,直接得出符合的解数。或者二分y,因为当x、z确定时,f是y的增函数。但是二分我不知道为什么用while(low[mark]1、暴力+剪枝#include#include#include#include#include#include#include#includeusing name

2012-09-12 22:38:17 1376

原创 HDU 4287 Intelligent IME [模拟]

这题就很傻逼,因为按出来的字母 对应 唯一的 数字按键。代码:#include#include#include#include#include#include#include#includeusing namespace std;inline int Rint() { int x; scanf("%d", &x); return x; }inline int m

2012-09-12 12:51:13 934

原创 HDU 4278 Faulty Odometer [模拟]

把乱了以后的数码映射到真实的数码,然后就8进制转10进制。代码:#include#include#include#include#include#include#include#includeusing namespace std;inline int Rint() { int x; scanf("%d", &x); return x; }inline int

2012-09-12 12:49:07 735

原创 HDU 4279 Number [数论+简证]

题意: 给出一个f(x), 表示不大于x的正整数里,不整除x 且 跟x有大于1的公约数 的数的个数。定义F(x), 为不大于x的正整数里,满足f(x)的值为奇数的数的个数。题目就是求这个F。分析:打表找规律的方法我就不说了。这里我们来简单推理证明下。先来看f(x),“不整除x” 等同于 不是x的约数,“跟x有大于1的公约数” 等同于 不是x的互质数。而且从F的定义知道,我们只需要考虑f

2012-09-12 12:38:22 1762

原创 0x20120912

最近拖延症发作起来,真的很夸张。。不过没事,我想我需要的只是一个理由。“有些事情,现在不做,你以后都不会做了”,这话是一个创业的CEO跟我说的,是啊,从短期来看,这话对拖延症,应该也有作用。。心中默念,现在不做,你以后也不会做。。

2012-09-12 11:59:29 601

原创 2012 ACM/ICPC Asia Regional Tianjin Online [赛后解题报告]

请原谅我是个弱逼。Pro.IDTitle4278Faulty Odometer4279Number4280Island Transport4281Judges' response4282A very hard mathematic problem4283You Are the O

2012-09-11 11:12:58 941

原创 2012 ACM/ICPC Asia Regional Changchun Online [赛后解题报告]

请原谅我是个弱逼。Pro.IDTitle4267A Simple Problem with Integers4268Alice and Bob4269Defend Jian Ge4270Dynamic Lover4271Find Black Hand4272LianLia

2012-09-11 11:06:25 756

原创 HDU 1556 Color the ball [区间更新+单点查询]

树状数组专辑树状数组,区间更新+单点查询代码:#include#include#include#include#include#include#include#includeusing namespace std;inline int Rint() { int x; scanf("%d", &x); return x; }inline int max(int

2012-09-08 21:36:38 771

原创 HDU 4389 X mod f(x)[数位统计dp]

我以前习惯叫"按位dp",貌似一样的.以前都是用记忆化搜索做,转移起来不用多想. 现在学了这个大牛 的写法, 感觉用迭代写也不错.总结一下:就是拿到一个上界bound.然后逻辑上将bound按位划分为三份,一份是统计过的,一份是当前统计位,最后一份是未统计位.从bound的高到低位(a[n~1])进行统计,统计 i 位时, a[n~i+1]都是统计过的, 都当成a[i](即那一位上

2012-08-25 03:39:34 1159

原创 HDU 3415 Max Sum of Max-K-sub-sequence[单调队列优化dp]

这题是有下界的最大子段和, 无上下界的最大子段和请看hh大牛把这个归为单纯的单调队列题, 因为这个状态间不用转移, 其实无所谓啦, 思路都是一样的思路:单调队列优化dp以i结尾的最大子段和 d[i] = max{ sum[i]-sum[k] | k=[i-K , i-1] }.化为 d[i] = max(f[k])+sum[i]. f[k]=-sum[k], k=[i-k, i

2012-08-22 00:25:43 1207

原创 HDU 1003 Max Sum + 单调队列优化dp解法

首先贴上经典dp解法,  以i结尾的最大子段和 d[i] = max(d[i-1]+a[i], a[i]).但这不是本文的主要目的.代码 O(n) :#include#include#include#include#include#include#include#includeusing namespace std;inline int Rint() { int x;

2012-08-21 23:19:15 856

原创 POJ 2823 Sliding Window

http://poj.org/problem?id=2823裸的单调队列.注意: 队列里存的是下标, 就不要把他当做值用- -代码:#include#include#include#include#include#include#include#includeusing namespace std;inline int Rint() { int x; scanf(

2012-08-21 20:04:54 428

原创 HDU 4360 As long as Binbin loves Sangsang

这题调到后面真是调疯了.....一直wa啊wa................卧槽, 尼玛的原来是手敲队列的时候, 队列大小开小了, 因为spfa一个结点能多次进入队列......这他妈都能错........卧槽...........代码:#include#include#include#include#include#include#include#include

2012-08-21 04:07:02 470

原创 HDU 4377 Sub Sequence[串构造]

比赛时A的, 由于是队友先写了wa, 然后我再改的, 所以代码有点奇怪 = =.方法就是分sqrt(n)组(都取上界),  每组最多有sqrt(n)个数, 然后每组里数字递减. 这样可以保证取到最小的max(正序数, 逆序数).然后就是要保证字典序最小, 方法就是给每组数初始设为1个数, 然后余下的尽量加在后面, 这样就得到每组各自有多少数了. 代码:#include#i

2012-08-20 03:14:22 579

原创 Vijos 1243 生产产品[单调队列优化dp]

好吧...作为我A掉的第一道单调队列优化dp....在高中生的OJ上....而且我调了一个半小时样例....然后很神奇的1A = =...诶 这题果断比多校8的1005难啊...min里面的东西这么奇葩的...又 k 又 p 又 j 地...开始我以为只要一个队列, 搞了半天发现应该要N个队列... = =...写出来好神奇....转移方程什么的详见代码吧....要碎了....总结下:

2012-08-20 03:03:28 1197

原创 关于dp的状态描述

dp的第一步一般都是想出一个合适的指标d 来描述状态.而我总是想出一些重叠子问题少的, 区分性强的指标, 导致失败.其实应该尽可能想那些能造成很多重叠子问题的, 又能准确区分状态与状态的 一个指标, 这样 dp效率 才高. 维数才低.

2012-08-20 02:47:38 499

原创 FZU 1894 志愿者选拔[双端队列/单调队列]

写这篇题解前重复一句被很多人说过的话...."一直以为单调队列就是优先队列, 2了....."然后这题开始用priority_queue, 悲催地TLE了...科普:1/ 优先队列, 一般用堆实现, 就是STL里priority_queue那玩意...也就是优化dijkstra时用的那玩意....用处:  从一堆数里用O(1)的时间找到最优值, 用O(logn)的时间插入.删除最优

2012-08-19 23:32:09 1004

原创 HDU 4370 0 or 1

这题答案就是 min(1~n最短路, 包含1的最小环+包含n的最小环).  (最小环不包括自环).这题没什么, 就是求最小环的时候要注意下.1/ 如果用邻接表, 那dist数组初始化肯定是INF, 但注意dist[st] 还是初始化为0. 不然之后无法拓展其他点. 然后在relax的时候 另外加一句 if(v==st) circle = min(circle, dist[u]+a[e].w

2012-08-19 16:36:26 500

原创 HDU 4371 Alice and Bob

队友出的#include #include using namespace std;int main(){ int T; cin>>T; for(int t=1;t<=T;t++) { int n,m; cin>>n>>m; string name; int min=999999999;

2012-08-18 20:50:40 480

原创 HDU 4379 The More The Better [坑爹想法题]

这题各种卡.先是卡空间, n太大了, 想要都存下来再sort只能是MLE.因为开不下, 所以逼你写空间复杂度O(1)的算法, Online扫一遍. O(n)的时间复杂度.算法是, 小于等于 L/2 的都可以加进来, 而大于L/2的可能可以加入一个, 只要min(大于L/2的)+max(小于等于L/2)  小于等于L就行了.完全不懂这题为什么用序列来描述而不用集合...这跟序根本没关

2012-08-18 20:45:29 642

原创 HDU 4302 Holedox Eating

多校的时候这题写了一个多小时....调了半个多小时过完样例, 然后一直wa.....当时何其悲惨....其实也是很傻逼的一道, 就是模拟动物走的部分要写得仔细一点....尽量分模块写...线段树: 单点更新, 区间查询, 维护区间离端点最近的有食物位置.注意题目线段是0~n.代码:#include#include#include#include#incl

2012-08-13 16:09:58 524

原创 POJ-3667 Hotel[线段树]

题意:有连续的N间房间, 两种操作, 一是Check in, 要找D间连续的空房间出来(房号尽可能小), 输出第一个的位置, 如果没有就输出0;  二是Check out, 从x号房开始连续的D个房间, 重新变成空房间.思路:1/ 先说我开始的想法: N个房间当成1~N的线段, 我们肯定是要维护一个最值, 用这个最值来判断这个区间是否能满足D间连续的空房间. 自然我们会维护区间的最大连

2012-08-12 20:47:46 530

原创 5798 - Jupiter Atacks!

http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3809单点更新+区间查询+维护区间公式和这题算是昨天开始刷线段树做过的比较难的了吧....首先要把维护量想出来, 再把合并区间的方式想出来, 然后写的时候 还有很多要注意的地方....

2012-08-12 11:56:29 520

原创 HDOJ 1698 Just a Hook [区间替换+区间查询]

这题我知道我做过. 但是现在做还是搞了半天.因为还是对 pushdown 这个没搞清楚. 这个函数不是维护e的 , 而是维护e的 子节点的.由于这题只要查询一次整段的值, 返回a[1]即可.代码1 (标准写法, pushdown维护到子节点):#include#include#include#include#include#include#include#in

2012-08-12 03:05:41 445

原创 HDOJ-2795 Billboard [线段树][单点更新+单点查询+维护区间最值]

8s时限单点更新+单点查询(要用区间信息来找到那个点)注意:对于维护区间最值的, 附加域直接当主域用, 因为叶节点的最值就是那个点的值思路:1/ 维护区间最左的还未满w的点, 若整个区间满了, 用-1表示这样不行的, 试想若最左未满点若剩余量还是2/ 蒟蒻啊, 看了hh的博客才知道要维护区间最大值(剩余量).  那我就维护最小值(已有量)吧...这样不用build一

2012-08-12 01:00:02 556

原创 POJ 2289 Jamie's Contact Groups 多重匹配+二分

题目大意是给你一堆联系人, 每个人有几个标签, 然后让你将他们分组(每组里的人要标签相同), 问其中人最多的组的人数最少是多少.有点像鸽巢的感觉...开始我想了一个, 以为是每次求最大匹配, 然后把已盖点的邻边全删掉, 然后看能求几次最大匹配....WA之...其实显然是错的, 因为每次删去一堆边你不能保证这样的匹配是最优的.然后发现有多重匹配这种东西....其实也就是给定{V}最多能

2012-08-05 18:18:34 2957

原创 POJ 2516 Minimum Cost

最小费.主要是这题有K种货物搞得关系很复杂, 开始建图卡住, 其实把k种货物分开来建k次图跑k次就好了.然后判断最大流和是否满足需求, 若满足则输出最小费和, 若不满足, 则输出-1.貌似还可以用KM代码://最小费用流// 建k次图... 最小费#include#include#include#includeusing namespace std;co

2012-08-05 18:01:50 491

原创 POJ 1149 PIGS

最大流. 注意有可能有多个人拥有同一个门的钥匙, 而且客人是按题目输入的顺序来的.所以客人间要连边.丢了个sap模板代码:#include #include #include #include #include #include using namespace std;//调用方法://init()初始化,addEdge()增加边,maxFlow()求最大流

2012-08-05 17:52:08 412

2011阿里巴巴程序设计公开赛_标程

HDOJ,2011阿里巴巴程序设计公开赛的标程 题目位置:http://acm.hdu.edu.cn/vip/2011alibaba/index.php

2011-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除