关闭

两个有序数组,求第K小数

两个有序数组A[0...m-1],B[0...n-1],A与B中所有元素均不重复,求A[],B[]合成数组的第K小数 class Solution { public: //there are no duplicate elements in array A or B. int findKthSmallest(int A[], int m, int B[], int n, int k...
阅读(498) 评论(0)

关于sizeof()函数

千万不要把数组名看成指针,尽管有些时候他们是相通的,但也仅限某些时候而已。 sizeof是一个奇特的函数,告诉你你也许不相信——sizeof在编译的时候就已经确定sizeof的结果了,这有点类似于宏。 char str[] = “Hello” ; sizeof (str ) = 6  编译器编译的时候根据上下文完全知道str是一个数组,sizeof (str ) = 6 理所当然是在求数...
阅读(294) 评论(0)

HDU 3966 Aragorn's Story 树链剖分模板

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3966 题解: #include #include #include #include using namespace std; #define MAXN 50010 #define L(u) (u<<1) #define R(u) (u<<1|1) //写在类里面爆栈 int n, m, q; i...
阅读(3107) 评论(1)

POJ 1330 Nearest Common Ancestors 最近公共祖先模板/在线/离线

题意:求树上两个节点的最近公共祖先 算法一:tarjan LCA(u) {   Make-Set(u)   ancestor[Find-Set(u)]=u  //设置u所在集合的祖先   对于u的每一个孩子v {    LCA(v)    Union(v,u)              //把v生成的子集并入u中    ancestor[Find-Set(u)]=u...
阅读(1356) 评论(0)

ZOJ 3687 The Review Plan I 容斥原理/禁位排列

题意: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4970 题解: #include #include #include using namespace std; #define MOD 55566677 #define lint long long #define MAXN 52 int fa[MA...
阅读(1132) 评论(0)

POJ 1390

Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3796   Accepted: 1506 Description Some of you may have played a game called 'Blocks'. There are n bloc...
阅读(915) 评论(0)

HDU 1412 搬寝室 DP

题意:。。。 题解: 将所有的数从小到大排序。 证明一个性质:若一个数num[i]被选中,那么一定要选num[i-1]或者num[i+1]来与它配对,这样才能使差方最小。 例如有下面四个数,他们从小到大到分别为x, x+a, x+a+b, x+a+b+c 选择(x,x+a),(x+a+b,x+a+b+c) ,差方=a^2+c^2 选择 (x,x+a+b), (x+a,x+a+b+c),...
阅读(678) 评论(0)

HDU 4291 A Short problem 矩阵,多重函数求循环节

题意:  According to a research, VIM users tend to have shorter fingers, compared with Emacs users.   Hence they prefer problems short, too. Here is a short one:   Given n (1 18), You should solve for...
阅读(978) 评论(0)

HDU 4288 Coder 离线线段树部分更新

题意:下标模5等于3的数的和。 题解: 可以这样,线段树的每个节点存一个数组 sum[5],表示当前节点覆盖的区间中,从左到有编号,模 5 为 0,1,2,3,4的所有数的和 每个节点再保存一个当前节点所包含的区间中有多少个数的信息:cnt。那么:         添加的时候就是在相应的位置把整数加进去,并把 cnt+1         删除的时候就是在相应的位置赋值...
阅读(635) 评论(0)

HDU 3974 Assign the task 线段树(树映射到区间)

题意.... 题解: #include #include #include #include using namespace std; #define MAXN 100001 #define L(u) (u<<1) #define R(u) (u<<1|1) struct A_NODE { A_NODE *sun, *bro; int num; } anode[MAXN],...
阅读(669) 评论(0)

划分树模板

#include #include #include #include using namespace std; #define MAXN 100001 #define L(u) (u<<1) #define R(u) (u<>1) struct SegTree { int l, r; } node[MAXN*4]; in...
阅读(525) 评论(0)

ZOJ 1006 Do the Untwist 加密解密 模拟

题意:加密、解密 题解: #include #include #include using namespace std; int key; int c2i[1000]; char i2c[1000]; void init() { for(int i = 'a'; i <= 'z'; i++) c2i[i] = i - 'a' + 1; c2i['_'] =...
阅读(804) 评论(1)

ZOJ 1005 Jugs

题意:两个罐子倒水 题解: #include #include #include using namespace std; int a, b, n; bool vis[1010][1010], flag; int res[10100], step; void print() { for(int i = 0; i < step; i++) { switch...
阅读(652) 评论(0)

ZOJ 1003 Crashing Balloon 搜索

题意:100个气球,气球上标有1-100的号码,每踩一个气球,则自己的得分可以乘以该气球的标号(初始得分为1,每个气球只能踩一次)。 题解:假如a>b,求出a,b所有可能的分解情况(分解为1-100的数的乘积)。然后比对,只要存在一种分解情况,使得a的因子中不含b的因子,a就是可能的。 #include #include #include #include using namespace...
阅读(2390) 评论(1)

线段树模板(lazy标记)ZOJ 3686

题解:先搜索用将树上的点给定时间戳,以此当做该节点的区间。 #include #include #include using namespace std; #define N 150005 bool vis[N], check[N]; int dep, k, n; struct treeNode { int id; treeNode *brother; treeNode *son;...
阅读(1230) 评论(0)
391条 共27页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:406853次
    • 积分:8314
    • 等级:
    • 排名:第2563名
    • 原创:342篇
    • 转载:49篇
    • 译文:0篇
    • 评论:34条
    最新评论