
小算法技巧
文章平均质量分 81
研发之道
一个坚持把架构做到极致的技术人,热衷于互联网技术。混迹互联网十几年,热衷于高性能、高并发、分布式技术领域的研究。
展开
-
两个超大数相乘 和两个超大数相加
#include#include#includeusing namespace std;//模拟手工加法string add(string str1, string str2){ int i; string str; int len_str1 = str1.length(); int len_str2 = str2.length(); int n = abs(len_st转载 2015-03-20 16:52:34 · 1005 阅读 · 0 评论 -
hihoCoder : 题目1 : 小Hi的烦恼(bitset应用 TODO: 待优化 )
题目1 : 小Hi的烦恼 时间限制:5000ms 单点时限:1000ms 内存限制:1024MB描述小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好。小Hi在高中期间参加了市里的期末考试,一共五门:语文、数学、英语、物理、化学。成绩出来之后,小Hi发现有些同学,所有科目都考的比他好,他很烦恼。所以他想知道所有科目都比自己名次靠前的同学的人数。为了方便,可以认为不原创 2017-04-23 20:36:09 · 774 阅读 · 1 评论 -
hihoCoder - 1514 : 偶像的条件
1514 : 偶像的条件时间限制:10000ms 单点时限:1000ms 内存限制:256MB描述小Hi的学校正面临着废校的大危机。面对学校的危机,小Hi同学们决定从ABC三个班中各挑出一名同学成为偶像。 成为偶像团体的条件之一,就是3名团员之间的身高差越小越好。 已知ABC三个班同学的身高分别是A1..AN, B1..BM 和 C1..CL。请你从中选出3名同学Ai, Bj, Ck使得D=原创 2017-04-23 20:29:08 · 891 阅读 · 0 评论 -
poj 2566 Bound Found(尺取法)
Bound FoundTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 2049 Accepted: 672 Special JudgeDescriptionSignals of most probably extra-terrestrial origi原创 2015-11-15 17:29:50 · 604 阅读 · 0 评论 -
code::block 常用快捷键 (最常用)
==日常编辑==• 按住Ctrl滚滚轮,代码的字体会随你心意变大变小。• 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。• Ctrl+D可复制当前行或选中块。• Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。• Tab缩进当前行或选中块,Shift+Tab减少缩进。•转载 2015-04-24 20:29:15 · 13370 阅读 · 2 评论 -
直线,折线,曲线分割平面以及平面分割空间问题
注明出处,摘自 http://www.cnblogs.com/chaosheng/archive/2012/01/26/2329583.html(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分转载 2015-04-05 23:11:32 · 1107 阅读 · 0 评论 -
素数 快速判定并打表
#include#includeusing namespace std;const int N=10000;int prime[N],t=0;bool Is_or[N];void Prime_is(){ for(int i=1;i<=N;i++) Is_or[i]=1; for(int j=2;j<=sqrt(N);j++) { if(Is_or[j]) for(原创 2015-04-05 00:11:13 · 971 阅读 · 0 评论 -
卡特兰数 求法 和 strcpy和memcpy的区别
#include#includeusing namespace std;const int MAX=101;const int BASE= 10000;void multiply(int a[],int len,int b){ for(int i=len-1,carry=0;i>=0;i--) { carry+=b*a[i]; a[i]=carry%BASE; ca转载 2015-03-25 17:18:00 · 629 阅读 · 0 评论 -
杭电acm题目分类 非常详细
按此做成就大神之路: 1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键1011 1012 简单题1013 简单题(有个小陷阱)1014 简单题101转载 2015-03-13 17:49:21 · 20277 阅读 · 1 评论 -
1.gcd求最大公约数lcm求最小公倍数
1. 欧几里德算法和扩展欧几里德算法欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a原创 2015-03-13 13:53:14 · 948 阅读 · 0 评论 -
递推分析解题思路
算法——递推算法递推算法给定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当n>n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hi(0递推算法是一种简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。 递推算法分为顺推和逆推两种。相对于递归算法,递推算法免除了数据进出栈的过程,也就是说,不需要函数不断的向边界值靠拢,而直接转载 2015-03-22 16:40:22 · 4506 阅读 · 0 评论 -
快速幂 模版
一般方法: int pow1(inta,intb){int r=1;while(b--)r*=a;return r;} 二分求幂int pow2(inta,intb){int r=1,base=a;while(b!=0){if(b%2)r*=base;base*=base;b/=2;}return r;}快速幂(位运算)intpow3原创 2015-03-27 21:31:08 · 737 阅读 · 0 评论 -
杭电 HDU ACM 1061 Rightmost Digit
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37888 Accepted Submission(s): 14268 Problem DescriptionGiven a ...原创 2015-04-16 15:59:50 · 3529 阅读 · 0 评论