E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
HiHo
hiho
Coder#1048 状态压缩·二
原题地址 位运算的状态压缩太操蛋了,很容易出错。。。又是数组没开够导致诡异现象(明明某个值是1,莫名其妙就变成0了),害我debug一整天!fuck 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 #def
·
2015-11-08 10:38
code
hiho
Coder#1036 Trie图
原题地址 看了这篇博文,总算是把Trie图弄明白了 Runtime Error了无数次,一直不知道为什么,于是写了个脚本生成了一组大数据,发现果然段错误了。 调试了一下午,总算闹明白了,为什么呢? 1. 空间超大的变量不要放在函数里,会爆栈,应该弄成全局变量或者是从堆上动态分配。 2. 看清题目的数据范围,一开始我的MAX_NODE设的是1024。。。 代码:
·
2015-11-08 10:37
code
hiho
Coder#1066 无间道之并查集
原题地址 并查集+路径压缩 数据量不大,没有加秩优化 代码: 1 #include <iostream> 2 #include <map> 3 #include <cstring> 4 5 using namespace std; 6 7 #define SIZE 100010 8
·
2015-11-08 10:36
code
hiho
Coder#1067 最近公共祖先·二
原题地址 超时、超内存都碰到了。。最后还是参考了这篇博文才勉强AC 需要注意: 1. 肯定是树而不是森林,而且树的根节点一定是第一个出现的名字,所以不需要再去找哪个是根了。这样可以节省一部分内存。 2. 用并查集路径压缩的方法维护并查集结构即可,当查找的时候再压缩,不需要每次染黑节点的时候都压缩。这样可以节省一部分时间。 3. 字符串都转成id再做。 4. 能静态申请内
·
2015-11-08 10:36
code
hiho
Coder#1062 最近公共祖先·
原题地址 A和A的共同祖先是A,即使A没有在之前的家谱中出现过!被这个坑了,WA了很久。。。 比如:小头爸爸是大头儿子他爹,问:隔壁王叔叔和隔壁王叔叔的最近祖先是谁?,答:隔壁王叔叔。 代码: 1 #include <iostream> 2 #include <map> 3 #include <set> 4
·
2015-11-08 10:35
code
hiho
Coder#1055 刷油漆
原题地址 第一次做树的动归题,如果没有提示的话还是挺难的 提示里的递推式隐含了状态压缩(m从大往小遍历),不是那么好想,只能说不能再屌了。 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 #define
·
2015-11-08 10:34
code
hiho
Coder#1054 滑动解锁
原题地址 回溯搜索 对于每个待枚举的点,检查: 1. 度数检查:是否违反了出度入度限制。因为生成的路径除了首尾节点外,其他节点的出度和入度只能为2 2. 共线检查:是否违反了共线条件。即跨越了尚未枚举过的节点 对于枚举产生的路径,检查: 1. 长度检查:长度是否大于等于4 2. 完整性检查:是否包含了片段中出现的所有边 代码: 1 #incl
·
2015-11-08 10:33
code
hiho
Coder#1050 树中的最长路
原题地址 根据提示做即可,总感觉数据结构用的不好,以后看看大神都是怎么用数组存树的。 1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 struct Node { 7 int first; 8 int s
·
2015-11-08 10:33
code
hiho
Coder#1049 后序遍历
原题地址 基本二叉树操作 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 void restore(char *pre, char *in, int len) { 7 if (len == 0) 8 r
·
2015-11-08 10:32
code
hiho
Coder#1044 状态压缩·一
原题地址 跟背包问题非常像,很巧妙,跟着提示做即可 需要注意的是,状态压缩以后,j的变化不是规律的,所以用一个临时缓冲back保存下一次迭代的结果。 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 int onesum(int a) { 6 int su
·
2015-11-08 10:31
code
hiho
Coder#1042 跑马圈地
原题地址 经网友jokeren提醒,后面给出的代码虽然可以AC原题,但存在bug,主要是在矩形覆盖情况的判断上处理的不够完全。 看似挺复杂的,但是仔细分析一下可以化简: 首先,不用枚举周长,因为更长的周长总是能够围成更大的面积,所以只要考虑如何在周长为L的前提下枚举面积就行了。 下图中,用蓝色线框表示跑马的路线,灰色矩形表示臭水塘。 假设可以穿越臭水塘,那
·
2015-11-08 10:30
code
hiho
Coder#1043 完全背包
原题地址 基本动态规划题+状态压缩 看完提示反倒是不会做了。。 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 int main() { 6 int N, M; 7 int best[500010] = {0}; 8 int value[
·
2015-11-08 10:30
code
hiho
Coder#1040 矩形判断
原题地址 一开始写了一个求交点然后算角度的,特别复杂不说,还很容易出错,WA了很久也不知道错在哪 后来想想,应该用向量做 四条直线能围成一个矩形 <=> 四条直线两两之间有4个平行关系,8个垂直关系 注意,直线重合并不算平行 代码清晰明了,一遍AC,这酸爽。 代码: 1 #include <iost
·
2015-11-08 10:29
code
hiho
Coder#1038 01背包
原题地址 基本动态规划 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 int main() { 6 int N, M; 7 int score[100010]; 8 int need[512]; 9 int val
·
2015-11-08 10:28
code
hiho
Coder#1120 小Hi小Ho的惊天大作战:扫雷·三
原题地址 看上去非常复杂, 实际上是这一系列最简单的一步,本质上是个搜索过程,相比于前一道题,可以不用策略三,而且题目的数据规模超级小,所以暴力搜索就能过。 把尚未确定的点放在一个unsettled列表里,然后依次枚举每个点的情况:是地雷or不是地雷 优化方案一即:每次枚举后,使用规则一、规则二对列表里剩下的点进行判断,如果能直接判断出是不是地雷的就立即设置了,这样剩下的枚举
·
2015-11-08 10:27
code
hiho
Coder#1037 数字三角形
原题地址 基本动归,题目中给的提示很有意思 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 #define SIZE 128 6 7 int main() { 8 int n; 9 int puzzle[SIZE][SIZE];
·
2015-11-08 10:27
code
hiho
Coder#1119 小Hi小Ho的惊天大作战:扫雷·二
原题地址 没有复杂算法,就是麻烦,写起来细节比较多,比较考验细心,一次AC好开心。 代码: 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <cstdlib> 5 6 usin
·
2015-11-08 10:26
code
hiho
Coder#1114 小Hi小Ho的惊天大作战:扫雷·一
原题地址 回溯+搜索 枚举每个位置上能否放地雷,当第i个位置枚举完成后,第i-1个位置的情况就确定了,此时,检查第i-1个位置是否满足要求,即左右间隔为1的范围内地雷数是否等于申明数字,如果满足条件,那么继续搜索下去,如果不满足条件,抛弃这个搜索分支。 搜索完成后,将所有可行解按位置“与”一下 ,找到那些一定为地雷或一定为空的格子。 最后输出即可。 代码:
·
2015-11-08 10:25
code
hiho
Coder#1094 Lost in the City
原题地址 限时10s,所以不用考虑什么算法了,暴力吧 分别按照3x3视野的四个方向去地图上匹配,把符合的地点标记出来,最后统一按照从上到下,从左到右的顺序输出。 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 #define MAP_SIZE 250 6
·
2015-11-08 10:24
code
hiho
Coder#1121 二分图一•二分图判定
原题地址 图的遍历,深度优先 向来对图的数据结构就练习的比较少,这种题目还是挺好的。 代码: 1 #include <iostream> 2 #include <vector> 3 #include <set> 4 5 using namespace std; 6 7 bool dye(ve
·
2015-11-08 10:24
code
hiho
Coder#1082 然而沼跃鱼早就看穿了一切
原题地址 字符串匹配+替换 注意替换串和原串长度是不等的,所以替换完还要进行收缩 可以顺带练习一下KMP 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 void kmp(char *l
·
2015-11-08 10:23
code
hiho
Coder#1051 补提交卡
原题地址 简单贪心 首先,补提交卡应该连续使用,其次,补提交卡应该全部用掉(如果补提交卡多于未提交天数则额外处理) 所以,依次遍历未提交日期,计算:从当前位置开始,用M张补提交卡覆盖后面连续M个数字,此时的连续提交天数。 代码: 1 #include <iostream> 2 3 using namespace std; 4
·
2015-11-08 10:22
code
hiho
Coder#1039 字符消除
原题地址 注意题目,连续字符同时被消除,所以消除无顺序区别。 纯模拟题,数据量很小,所以暴力做就行了:枚举所有可能插入的位置,每个位置再枚举插入字符 想了几个优化的方案,但是估计是哪里错了,导致得出的结果是WA。后来只好乖乖用最暴力的方法AC。 代码: 1 #include <iostream> 2 #include <cstri
·
2015-11-08 10:21
code
hiho
Coder#1032 最长回文子串
原题地址 这道题巧妙地利用了先前回文串的信息来减少后面的回文串计算量。 比如下面的字符串(圆圈代表字符)假设已经知道了某个字符的回文串情况(曲线连接的两个圆圈代表两个相同字符) 思考:这能给后面的回文串计算带来什么帮助呢? 一个巴掌拍不响,看看已知两个回文串有什么效果: 是不是有点意思了?为了更加直观,我们给曲线和点
·
2015-11-08 10:21
code
hiho
coder 1142 三分求极值【三分算法 模板应用】
#1142 : 三分·三分求极值 时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d。 提示:三分法 输入 第1行:5个整数a,b,c,x,y。前三个数构成抛物线的参数,后两个数x,
·
2015-11-07 14:04
code
hiho
一下 第四十九周 题目1 : 欧拉路·一【无向图 欧拉路问题】
题目1 : 欧拉路·一 时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找到最后的宝藏。现在他们控制的角色来到了一个很大的湖边。湖上有N个小岛(编号1..N),以及连接小岛的M座木桥。每座木桥上各有一个宝箱,里面似乎装着什么道具。
·
2015-11-07 14:59
问题
hiho
coder #1032 : 最长回文子串【 manacher算法实现 】
#1032 : 最长回文子串 时间限制: 1000ms 单点时限: 1000ms 内存限制: 64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经
·
2015-11-07 14:58
code
WinForm轻松实现自定义分页
转载至http://xuz
hiho
ng1987.blog.163.com/blog/static/267315872011315114240140/ 以前都是做web开发,最近接触了下WinForm,
·
2015-11-06 07:22
WinForm
如何:使用PicturBox实现类似淘宝网站图片的局部放大功能
转载至 http://xuz
hiho
ng1987.blog.163.com/blog/static/267315872011822113131823/ 概要:
·
2015-11-06 07:21
图片
jQuery图片放大插件[twiPicZoom]
转载http://xuz
hiho
ng1987.blog.163.com/blog/static/26731587201312821725913/ 功能说明:  
·
2015-11-06 07:21
jquery
LINQ查询返回DataTable类型
个人感觉Linq实用灵活性很大,参考一篇大牛的文章LINQ查询返回DataTable类型 http://xuz
hiho
ng1987.blog.163.com/blog/static/26731587201101853740294
·
2015-11-06 07:20
Datatable
hiho
coder 1078 线段树区域更新
#include #include #include usingnamespacestd; #defineM1000005 structtree{ intleft,right,sum,lazy; }; treeg[M]; intmap[M]; voidpushDown(inti) { if(g[i].lazy) { g[2*i].lazy=1; g[2*i+1].
weiqingliu
·
2015-11-05 15:00
ACM
#1116 : 计算
链接:http://
hiho
coder.com/problemset/problem/1116?
mymilkbottles
·
2015-11-02 19:00
hiho
Coder#1086 Browser Caching
原题地址 list+map可以轻松搞定,如果不借助STL实现起来还是挺麻烦的 代码: 1 #include <iostream> 2 #include <string> 3 #include <list> 4 #include <map> 5 6 using namespace std;
·
2015-11-02 18:15
browser
hiho
Coder#1139 二分·二分答案
原题地址 挺简单一道题,结果因为一时傻逼写错一个小地方,导致WA成狗了_(:з」∠)_ 代码: 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 5 using namespace std; 6 7 #define
·
2015-11-02 18:14
code
hiho
Coder#1141 二分·归并排序之逆序对
原题地址 又是一道WA成狗的题,最后发现原来是结果溢出了。。 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 #define MAX_N 100008 7 8 int N; 9 long lo
·
2015-11-02 18:14
code
hiho
Coder#1133 二分·二分查找之k小数
原题地址 经典问题了,O(n)时间内找第k大的数 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 int N, K; 6 int *a; 7 8 int search(int left, int right, int k) { 9 if (left >
·
2015-11-02 18:13
code
hiho
Coder#1128 二分·二分查找
原题地址 一开始没搞懂题目是想干什么,于是写了一个扫一遍的代码,A了,如下: 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 int main() { 6 int N, K, a; 7 bool found = false; 8 int l
·
2015-11-02 18:12
code
hiho
Coder#1127 二分图三·二分图最小点覆盖和最大独立集
原题地址 主要是介绍了两个定理: 1. 二分图最大匹配数 = 二分图最小点覆盖数 2. 二分图最小点覆盖数 = 二分图顶点数 - 二分图最小点覆盖数 注意,都是二分图 代码:(匈牙利算法) 1 #include <iostream> 2 #include <cstring> 3
·
2015-11-02 18:11
code
hiho
Coder#1122 二分图二•二分图最大匹配之匈牙利算法
原题地址 只能说匈牙利算法不能更屌,而且提示里给的伪码也不能更屌了! 只用了第二个优化,因为将输入点集分割成A、B似乎挺麻烦的,索性就没用这个优化。 代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 #de
·
2015-11-02 18:11
code
hiho
Coder#1105 题外话·堆
原题地址 有没有更优雅地堆模板啊,总感觉我写的有些啰嗦 代码: 1 #include <iostream> 2 3 using namespace std; 4 5 #define MAX_NODE 100008 6 7 struct Heap { 8 int core[MAX_NODE]; 9 i
·
2015-11-02 18:10
code
hiho
Coder#1109 最小生成树三·堆优化的Prim算法
原题地址 坑了我好久。。。提交总是WA,找了个AC代码,然后做同步随机数据diff测试,结果发现数据量小的时候,测试几十万组随机数据都没问题,但是数据量大了以后就会不同,思前想后就是不知道算法写得有什么问题,因为本来就没什么复杂的地方嘛! 后来,突然灵机一动,莫非又是数组开小了? 突然意识到,我是用数组保存图的,所以对于无向图,边数实际上是输入的2倍,于是把数
·
2015-11-02 18:09
最小生成树
hiho
Coder#1098 最小生成树二·Kruscal算法
原题地址 以前没写过Kruscal算法,写了才知道原来比Prime算法简单多了。。。 并查集的应用太经典了! 代码: 1 #include <iostream> 2 #include <cstdlib> 3 4 using namespace std; 5 6 #define MAX_EDGE 100000
·
2015-11-02 18:08
最小生成树
hiho
Coder#1052 基因工程
原题地址 找规律题 如果首尾如果不交,那么不一样的位数就是需要变换的次数。 如果首尾相交,似乎比较复杂,所以找找规律。 假设字符串是这样的(上下是同一个字符串,只是为了方便描述首尾部分而分开画的),要让蓝色的首尾部分相同: 因为是一个字符串,所以虚线部分相同。 即,下图中红色方框部分相同。 因
·
2015-11-02 15:15
code
hiho
coder 1246 : 王胖浩与环(抽屉原理)
题目链接:传送门题意:将一个长度为n的序列分成连续的k短,然后每一段的和为sum1,sum2,sum3,...,sumk,求max{gcd(sum1,sum2,...,sumk)}.分析:首先d一定是所有数总和的约数,这样的数并不多。接着判断一个d是否可能为k段和的约数,只要将前缀和按模d分类即可,看相同的个数是否大于等于k。Code#include usingnamespacestd; ty
u013790563
·
2015-11-02 14:00
抽屉原理
hihoCoder
hiho
coder第42周 k*N骨牌覆盖(状态dp+矩阵快速幂)
上周的3*N的骨牌,因为状态只有8中,所以我们可以手算出状态转移的矩阵 但是这周是k*N,状态矩阵不好手算,都是我们改成用程序自动生成一个状态转移的矩阵就行了,然后用这个矩阵进行快速幂即可 枚举枚举上下两行的状态,然后判断上一行的状态能不能转移为这一行的状态 如果上一行的某个位置为0,那么这一行的该位置必须为1 如果上一行的某个位置为1,那么这一行的该位置可以为0 如果上一行的某个位置为
·
2015-11-02 13:54
code
hiho
coder第42周 3*N骨牌覆盖(状态dp+矩阵快速幂)
http://
hiho
coder.com/contest/
hiho
42/problem/1 给定一个n,问我们3*n的矩阵有多少种覆盖的方法 第41周做的骨牌覆盖是2*n的,状态转移方程是dp[i]
·
2015-11-02 13:52
code
hiho
coder第41周 骨牌覆盖(矩阵快速幂)
由于棋盘只有两行,所以如果第i列的骨牌竖着放,那么就转移为第1列到第i-1列骨牌有多少种摆法 如果第一行第i列骨牌横着放,那么第二行第i列也要横着放,那么就转移为了第1列到第i-2列骨牌有多少种方法 dp[i] = dp[i-1] + dp[i-2],但是列数太多了。 这种递推的算式可以用矩阵快速幂来优化 所以时间复杂度瞬间变为O(logn) 1 #include <std
·
2015-11-02 13:46
code
hiho
coder #1052 基因工程
传送门:基因工程 这道题拖了好久,一直没有清晰的思路。 当然,K<=N/2时,比较简单。下面我着重讲一下当K>N/2,即前K个字符与后K个字符有重叠时,如何思考这个问题。 为了便于分析,我们把题目要求形式化成如下的数学表示 假设修改后的字符串为S,字符串长度为N,则S满足 S[i] = S[i+N-K] 1 <= i <=K 即“S是以N
·
2015-11-02 12:39
code
hiho
Coder
hiho
一下 第四十六周 博弈游戏·Nim游戏·三( sg函数 )
题意:给出几堆石子数量,每次可以取走一堆中任意数量的石头,也可以将一堆分成两堆,而不取。最后取走者胜。 思路:先规矩地计算出sg值,再对每个数量查SG值就可以了。最后求异或和。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N=105, limit=200
·
2015-11-02 11:19
code
上一页
21
22
23
24
25
26
27
28
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他