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
算法竞赛入门经典例题
算法竞赛入门
经典笔记(1-3章)
第一章 程序设计入门 1.整数/整数=整数,浮点数/浮点数=浮点数 2.PI的使用 java中 Math.PI(在java.lang.Math包中) C/C++中 const double pi = 4.0*atan(1.0); (即4*arctan(1)) 3.将25按025输出 输出格式为%03d; 4.a,b互换数值方法 (1)、int t=a;a=
·
2015-10-31 18:55
算法
《
算法竞赛入门
经典——训练指南》第一章相关内容
问题求解策略 (General Problem Solving Techniques) 例题 (Examples) 例题 1 UVa11292 The Dragon of Loowater 排序后用贪心法 题解 例题 2 UVa11729 Commando War 用贪心法求最优排列;用“相邻交换法”证明正确性
·
2015-10-31 17:50
算法
费用流:方格取数
可是也可以算是网络流建模的
经典例题
。今天终于调过了NOIp2008的传纸条,顺便把程序改了改交了NOIp2000的方格取数与3取方格数、n取方格数。
·
2015-10-31 13:49
流
算法竞赛入门
经典 第一章 上机练习
//试验方法确定int型整数的最大最小值 #include<stdio.h> #include <math.h> int main() { int a = 0; while( a < (a+1) ) { ++a; } printf("%d\n", a);//最大值 a = 0; while( abs(a) < abs(a) +
·
2015-10-31 13:28
算法
《
算法竞赛入门
》-课后习题-Chapter 2
2-1 daffodil水仙花 #include <stdio.h> int main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=(i-a*100)/10; c=i-a*100-b*10; if(a*a*a+b
·
2015-10-31 12:51
apt
Hut 1997 Seven tombs
具体做法参考刘汝佳《
算法竞赛入门
经典》198页。 另外练习:next_permutation() &n
·
2015-10-31 12:13
T
(Step1-500题)UVaOJ+
算法竞赛入门
经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成。打牢基础,厚积薄发。 一、UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线
·
2015-10-31 11:11
USACO
11235 - Frequent values
《
算法竞赛入门
经典-训练指南》P198 记录一下区间的左右边界就可以了 #include <iostream> #include <stack> #include <
·
2015-10-31 09:44
value
《
算法竞赛入门
经典——训练指南》第一章—算法设计基础
这是第一章的所有例题和课后习题,寒假前的任务,尽量刷吧。。。 问题求解策略 例题 例题 1 UVa11292 The Dragon of Loowater 排序后用贪心法 例题 2 UVa11729 Commando War 用贪心法求最优排列;用“相邻交换法”证明正确性 例题 3 UVa11300 Spreading The Wealth 用代数法进行数学
·
2015-10-31 09:53
算法
关于下一步的计划
刘汝佳新出了一本《
算法竞赛入门
经典——训练指南》知识点挺全面的,按照这本书刷上面的题吧。。以后或许博客不怎么经常更新了,处于学习新东西的阶段,就个人而言,我更喜欢多看书然后配合着做题。
·
2015-10-31 09:53
计划
11235 - Frequent values
《
算法竞赛入门
经典-训练指南》P198 记录一下区间的左右边界就可以了 #include <iostream> #include <stack> #include <
·
2015-10-31 09:02
value
用二叉树表示表达式
先看中缀表达式的二叉树表示: /* * 中缀表达式 构建 二叉树 * * 方法: 每次找到“最后计算”的运算符,作为当前树的根,然后递归处理 * 详见 刘汝佳《
算法竞赛入门
经典
·
2015-10-28 09:39
二叉树
《
算法竞赛入门
经典》读书报告1
很久没有沉下心来看看算法了,3月1日要考PAT,今天开始好好精心看看书吧。没什么压力看看算法还是几多惬意的一件事儿。 14页有几个很有意思的问题: 1、如何用实验的方法确定int型整数的最大值和最小值? 思考一下。没想出来。谷歌之。 思路还是很清楚的。正常的int型表示范围:正数一定是 a < (a+1);负数一定是 a > (a-1)。但如果到了临界值,溢
·
2015-10-28 08:56
算法
[置顶] 刘汝佳《训练指南》动态规划::Beginner (25题)解题报告汇总
本文出自 http://blog.csdn.net/shuangde800 刘汝佳《
算法竞赛入门
经典-训练指南》的动态规划部分的习题Beginner
·
2015-10-27 13:36
inner
《
算法竞赛入门
经典(第2版)》
《
算法竞赛入门
经典(第2版)》 基本信息 作者: 刘汝佳 丛书名: 算法艺术与信息学竞赛 出版社:清华大学出版社 ISBN:9787302356288 上架时间
·
2015-10-27 12:38
算法
《
算法竞赛入门
经典》(第2版)第二章习题
本文部分习题参考了litiouslove的blog:http://blog.csdn.net/litiouslove/article/details/7891700习题2-1水仙花数(daffodil)输出100~999中的所有水仙花数。若3位数ABC满足ABC=A3+B3+C3,则称其为水仙花数。例如153=13+53+33,所以153是水仙花数。#includeusingnamespacest
elashu
·
2015-10-26 07:39
算法竞赛入门经典
UVa-1593 - Alignment of Code
这几天一直在刷《
算法竞赛入门
经典》,由于是STL章节,所以这篇和下面的几篇都用STL来写。
·
2015-10-21 13:35
code
# hihocoder #1093 : 最短路径·三:SPFA算法
这里参考《
算法竞赛入门
经典》中第11章用矩阵来表示邻接表(AdjacencyList)。算法实现参照其11.2.4节。这种表示法,每个结点i都有一个链表,里面保存着从i出发的所有边。对于无向图来
wgdzz
·
2015-10-05 10:00
算法
hihoCoder
UVa253 Cube painting(骰子涂色)(27行,比较简洁的样子)
算法竞赛入门
宝典(第2版)习题4-4骰子涂色(Cubepainting,UVa253) Cube painting We have a machine for painting cubes.
ProLightsfxjh
·
2015-10-03 00:00
C++
cube
ACM
uva
Painting
算法竞赛入门宝典第2版
UVa253 Cube painting(骰子涂色)(27行,比较简洁的样子)
算法竞赛入门
宝典(第2版)习题4-4骰子涂色(Cubepainting,UVa253) Cube painting We have a machine for painting cubes.
ProLightsfxjh
·
2015-10-03 00:00
C++
cube
ACM
uva
Painting
算法竞赛入门宝典第2版
基础篇——队列,栈
队列与栈(一)队列
经典例题
:一串长为n加密的数字,解密法则如下——将第一个数删除,再把第二个数放到末尾,删除第三个数,将第四个放到末尾。。。。。。直到剩下最后一个数,将最后一个数删除。
单纯的呼大帅
·
2015-09-15 10:56
编程算法基础
【五校联考2015 9.5】我才不是萝莉控
(
经典例题
合并果子)经典的哈夫曼树构建方式是用堆来维护。考虑如何用DP来求得哈夫曼树。由于这个序列
Yves___
·
2015-09-08 15:00
基础篇2——贪心法
经典例题
:一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为25美分、10美分、5
单纯的呼大帅
·
2015-09-01 19:33
编程算法基础
hdu1004Let the Balloon Rise(map容器
经典例题
)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1004LettheBalloonRiseTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):90953 AcceptedSubmission(s):34578Pro
sinat_30126425
·
2015-09-01 19:00
HDU
算法竞赛入门
经典 习题2-10 排列(permutation)
习题2-10排列(permutation)用1,2,3,…,9组成3个三位数 abc,def, 和ghi,每个数字恰好使用一次,要求 abc:def:ghi=1:2:3。输出所有解。提示:不必太动脑筋。解题思路:首先abc最小值只能为123,最大值329,才符合题意。此题重点判断1—9中每个数字都需出现,不能重复。解决方法:利用数组a[1],..,a[9]分别表示1,2...,9是否出现,出现记
fjinhao
·
2015-08-30 10:00
C语言
算法竞赛入门经典
算法竞赛入门
经典(第二版) 习题3-11 换低档装置(Kickdown) UVa1588 NEERC2006
Page59题意:给出两个长度分别为n1,n2且每列高度只为1或者2的长条,需要将它们放入一个高度为3的容器,问容器的最短长度。思路:两个字符串起始端对齐,分两个方向移动,得到两个最短长度,再取较小者即可。此题看似简单,技巧却很多,值得思考。#include#include#include#include#include#include#includeusingnamespacestd;#defi
AgoniAngel
·
2015-08-27 00:30
基础题
字符串
汉诺塔II (递推+数学)
Java/Others)TotalSubmission(s):6234 AcceptedSubmission(s):3047ProblemDescription经典的汉诺塔问题经常作为一个递归的
经典例题
存在
yanghui07216
·
2015-08-21 10:00
hdu1995汉诺塔V
经典的汉诺塔问 题经常作为一个递归的
经典例题
存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于 印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小 顺序
aonaigayiximasi
·
2015-08-20 17:00
hdu1207汉诺塔II四柱
pid=1207ProblemDescription 经典的汉诺塔问题经常作为一个递归的
经典例题
存在。可能有人并不知道汉诺塔问题的典故。
aonaigayiximasi
·
2015-08-20 17:00
算法竞赛入门
经典:第十章 数学概念与方法 10.2无平方因子的数
/*无平方因子的数:给出正整数n和m,区间[n,m]内的“无平方因子”的数有多少个?整数p无平方因子当且仅当不存在k>1,使得p是k^2的倍数。1#include#include#defineMAXSIZE1000000intiPrime[MAXSIZE];intiVis[MAXSIZE];voiddelMultiple(longn,longm)//从素数中筛掉区间[n,m]内p^2的所有倍数{l
天地一扁舟
·
2015-08-19 09:09
刘汝佳算法竞赛入门经典
uva 1658 Admiral 最小费最大流
我这里是按照
算法竞赛入门
经典里面提到拆点+最小费最大流。
xinag578
·
2015-08-18 22:00
算法竞赛入门
经典:第八章 高效算法设计 8.7二分查找之upperBound
/* 写一个upperBound程序,当v存在时返回它出现的最后一个位置的后面的一个位置。如果不存在,返回这样一个下标i:在此处插入v(原来的元素A[i],A[i+1],..全部 往后移动一个位置)后序列仍然有序。 分析: iArr[mid]iVal,左半区间,mid是可能的,作为最后一个位置后面的位置,[x,mid] 总结: iArr[mid]iVal,high=mid 注
qingyuanluofeng
·
2015-08-18 09:00
二分查找
算法竞赛入门
经典:第八章 高效算法设计 8.6二分查找之lowerBound
/* 深入: 注意:对于二分查找的一个系列,high都是用数组长度来计算,真正是取不到的 如果数组中多个元素都是v,上面的函数返回的是中间的一个。能不能呢个求出值等于v的完整区间呢? 下面的程序当v存在时返回它出现的第一个位置。如果不存在,返回这样一个下标i:在此处插入v(原来的元素A[i],A[i+1],..全部往后移动一个位置)后序列仍然有序 分析: 最后的返回值不仅可能是x,
qingyuanluofeng
·
2015-08-18 09:00
二分查找
算法竞赛入门
经典:第八章 高效算法设计 8.5二分查找
/* 二分查找: 本质:有序表中使用二分查找,log2(1000) 深入: 如果数组中多个元素都是v,上面的函数返回的是中间的一个。能不能呢个求出值等于v的完整区间呢? 下面的程序当v存在时返回它出现的第一个位置。如果不存在,返回这样一个下标i:在此处插入v(原来的元素A[i],A[i+1],..全部往后移动一个位置)后序列仍然有序 思路 排序后: 01346799
qingyuanluofeng
·
2015-08-18 09:00
二分查找
算法竞赛入门
经典:第八章 高效算法设计 8.4快速排序应用之第k小的数
/* 第k小的数: 输入n个整数和一个正整数k(1 #defineMAXSIZE1024 intpartition(int*iArr,intlow,inthigh) { intiVal=iArr[low]; while(low=iVal) { high--; } iArr[low]=iArr[high]; while(low
qingyuanluofeng
·
2015-08-18 09:00
快速排序
算法竞赛入门
经典:第八章 高效算法设计 8.3归并排序应用之逆序对数
/* 逆序对数: 给出一列数a1,a2,...,an,求它的逆序对数,即有多少个有序对(i,j),使得iaj。n可以高达10^6 思路: 分解成前后两个序列,统计后序列中每个元素与前面中每个元素的逆序对数,是一个叉乘 书析: 采用O(n^2)枚举超时,因为n很大。 划分:将序列等分 递归求解:统计i和j均在左边或者均在右边的逆序对个数 合并:统计i在左边,但j在右边的个数
qingyuanluofeng
·
2015-08-18 09:00
归并排序
算法竞赛入门
经典:第八章 高效算法设计 8.2归并排序
/* 归并排序: 1注意每次划分时候使用一个辅助数组 输入: 8 19634790 输出: 01346799 */ /* 关键: 1voidmergeSort(int*iArr,intlow,inthigh,int*iTempArr)//注意,high是取不到的,因此传入的实参为数组长度n 2if(high-low>1)//递归出口,所剩元素大于1,只有一个元素没有
qingyuanluofeng
·
2015-08-18 09:00
归并排序
算法竞赛入门
经典:第八章 高效算法设计 8.1动态规划之最大连续和
/* 最大连续和: 给出一个长度为n的序列A1,A2,...,An,求最大连续和。换句话说,要求找到10 {a,b[i-1]maxSum(iArr,mid,high)?maxSum(iArr,low,mid):maxSum(iArr,mid,high);//分治第二步,递归,为后面比较子序列的最大值做准备 6intiSum=0,iL=iArr[mid-1];//我终于明白为什么从中间向两头
qingyuanluofeng
·
2015-08-18 09:00
动态规划
最大连续和
算法竞赛入门
经典:第七章 暴力求解法 7.20八数码问题之stl
/* 八数码问题之stl: 1setvis,这样只需要调用if(vis.count(s))来判断s是否在集合vis中,并用vis.insert(s)加入集合,用vis.remove(s)从集合中移除s。 问题:并不是所有类型的State都可以作为set中的元素类型。set的元素必须定义"vis,这样只需要调用if(vis.count(s))来判断s是否在集合vis中,并用vis.insert
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.18八数码问题之哈希去重
/* 八数码问题之哈希去重: 输入: 264137058 815736402 输出: 31 */ /* 关键: 1哈希:把结点变成整数,但不必是一一对应。设计一个哈希函数h(x),然后将任意结点x映射到某个给定的范围[0,M-1]的整数即可,其中M是程序员根据可用内存大小 自选的。不同结点哈希值相同时,用链表组织哈希值相同的链表。 2iSum=10*iSum+s[i];
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.18 广度优先搜索之八数码问题
/* 八数码问题: 编号为1~8的8个正方形滑块被摆成3行3列(有一个格子空留),如图所示。每次可以把与空格相邻的滑块(有公共边才算相邻)移到空格中,而它原来的位置就称为了 新的空格。给定初始局面和目标局面(用0表示空格格),你的任务是计算出最少的移动步数。如果无法达到目标局面,则输-1. 264815 137736 5842 思路: 1用广度优先搜索,难道得用9个位置剪枝才能
qingyuanluofeng
·
2015-08-18 09:00
广度优先搜索
算法竞赛入门
经典:第七章 暴力求解法 7.18倒水问题
/* 倒水问题: 有装满水的6升杯子、空的3升杯子和一升杯子,3个杯子中都没有刻度。在不使用其他道具的情况下,是否可以量出4升的水呢? 输入: 6(满杯水所在的刻度)31 输出: (6,0,0)->(3,3,0)->(3,2,1)->(4,2,0) 思路: 这与倒可乐是一个问题,关键在与状态的搜索。 1采用广度优先搜索算法 2当前状态的下一状态的方法为:(a,b,c) 状
qingyuanluofeng
·
2015-08-18 09:00
广度优先搜索
算法竞赛入门
经典:第七章 暴力求解法 7.16埃及分数
/* 埃及分数: 使用单位分数的和(如1/a,a是自然数)表示一切有理数。例如2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为在加数中不允许有相同的。 对于一个分数a/b,表示方法有很多种,其中加数少的比加数多的号,如果加数个数相同,则最小的分数越大越好。例如,19/45=1/5+1/6+1/18是最优方案。 输入整数a,b(0=1/em,确定em的下界 若设定深度上限为d,
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.13困难的串
/* 困难的串: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串成为“困难的串”。例如:BB,ABCDACABCAB,ABCDABCD都是容易的,而D、DC、ABDAB、CBABCBA 都是困难的。 输入正整数n和L,输出由前L个字符组成的、字典序第n个小的困难的串。例如,当L=3时,前7个困难的串分别为:A、AB、ABA、ABAC、ABACA、ABACAB、ABACA
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.11回溯法
/* 回溯法: 排列生成和子集枚举的两种方法:1递归,2遍历 遍历:优点:简单,缺点:增大枚举量,检验所有解 回溯法:含义:递归时,将生成+检查过程结合 适合:问题分成步骤,步骤采用不太多选择 回溯算法=递归枚举算法:分成若干步骤递归,若某一步无解,返回上一级调用,称为回溯。 八皇后问题: 在棋盘上放置8个皇后,使得她们互不攻击,此时每个皇后的攻击范围为同行同列和同对角线,
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.10 二进制法
/* 二进制法: 用二进制表示{0,1,2,...,n-1}的子集S:从右往左第i位表示元素i是否在集合S中。1表示在。 异或特点:开关性。两次异或后相当于没有B^B=0,A^B^B=A。 空集:0,全集:2^n-1.ALL_BITS=(1 #include voidprintSubset(intiElem,intn)//打印{0,1,...,n-1}中iElem的子元素 {
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.9位向量法
/* 位向量法: 构造一个位向量B[i],而不是直接构造子集A本身,其中B[i]=1当且仅当i在子集A中。 注意:此题不是求排列,而是求子集,这里n个元素有2^n-1个子集,因为空集无法打印出来 输入: 3 输出: 012 01 02 0 12 1 2 */ /* 关键: 1if(pos==n)//凡是递归,先写递归出口,否则若写在后面,很容易漏掉,所有元
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.8子集生成
/* 子集生成: 给定一个集合,枚举它所有可能的子集。讨论范围:没有重复元素。 增量构造法:一次选出一个元素放到集合中: */ #include #include #defineMAXSIZE1024 //每次递归调用都输出当前集合,递归边界也不需要显式确定--如果无法继续添加元素,就不再递归。 voidprintPermutation(intn,int*iA
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门
经典:第七章 暴力求解法 7.7解答树
/* 解答树: 以下的树显示了排列递归函数的调用过程。 (****) (1***)(2***)(3***)(4***) (12**)(13**)(14**)(21**)(23**)(24**)(31**)(32**)(34**)(41**)(42**)(43**) (123*)(124*) (1234) 特点: 第0层有n个儿子,第一层各节点各有n-1个儿子,第二层各有n-2
qingyuanluofeng
·
2015-08-18 09:00
解答树
算法竞赛入门
经典:第七章 暴力求解法 7.6可重复的排列
/* 生成可重集得到排列: 把问题改成:输入数组P,并按字典序输出数组A各元素的所有全排列,则需要对上述程序进行修改--把P加到printPermutation的参数列表中,然后把 代码中的if(iArr[i]==j)和if(A[pos]==j)改成if(iArr[i]==P[j])和iArr[pos]=P[j] bug1:如果数组中是重复的元素111的话,因为禁止出现重复,造成错误
qingyuanluofeng
·
2015-08-18 09:00
排列
上一页
28
29
30
31
32
33
34
35
下一页
按字母分类:
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
其他