竞赛
文章平均质量分 67
肥肥的羚宝
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
倒水问题C++实现
量水问题方案[量水问题]:有三个分别装有a升水,b升水,c升水的量筒,其中a,b互质,c>b>a>0,现在c筒装满水,问能否在c筒中量出d升水(c>d>0)。若可以,给出方案。解答:所谓模数方程,就是模线性方程,即形如 ax ≡ b (mod c) 形式的方程,其中a,b,c是常数,x是自变量,这个方程表示ax mod c = b mod c,即ax和b模c同余。这个量水原创 2012-04-06 20:08:20 · 4219 阅读 · 0 评论 -
POJ-1702
Eva's BalanceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3435 Accepted: 1720DescriptionEva has a balance with 20 poises. The weights of the poises are转载 2012-03-20 23:39:13 · 410 阅读 · 0 评论 -
概率问题
/*概率问题某个袋子中有红球m个,白球n个。现在要从中取出x个球。那么红球数目多于白球的概率是多少呢?下面的代码解决了这个问题。其中的y表示红球至少出现的次数。这与前文的问题是等价的。因为如果取30个球,要求红球数大于白球数,则等价于至少取出16个红球。请根据仅存的线索,判断程序逻辑,并补全缺少的代码。*/#include "stdafx.h"/* m: 袋原创 2012-03-22 22:41:18 · 804 阅读 · 1 评论 -
点到直线的距离算法-来源于mapserver(目前所知效率最高的) 推荐*****
double msDistancePointToSegment(pointObj *p, pointObj *a, pointObj *b){//计算点到线段(a,b)的距离 double l; /* length of line ab */ double r,s; l = msDistancePointToPoint(a,b); if(l == 0.0) /* a = b ...原创 2012-04-25 10:59:06 · 340 阅读 · 0 评论 -
ZOJ 简洁解题报告
普通题:1001:入门1110:注意收缩范围1115:使用“弃9法”可以更快的得出答案;注意数据可能会有些大,第一次读入时使用字符串读入1414:按y轴模2划分,在确定x轴方向1713:使用scanf的高级用法scanf("%[^'/']", str);在每段之间找原音数即可1716:暴力搜索,或树状数组1745:滑动输入1847:本题中,类似于10.00000在计...原创 2012-04-25 20:10:14 · 167 阅读 · 0 评论 -
树状数组
1、概述树状数组(binary indexed tree),是一种设计新颖的数组结构,它能够高效地获取数组中连续n个数的和。概括说,树状数组通常用于解决以下问题:数组{a}中的元素可能不断地被修改,怎样才能快速地获取连续几个数的和?2、树状数组基本操作传统数组(共n个元素)的元素修改和连续元素求和的复杂度分别为O(1)和O(n)。树状数组通过将线性结构转换成伪树状结构(线性结构只能逐个...原创 2012-04-26 12:04:47 · 214 阅读 · 0 评论 -
算法之排列与组合算法
1. 前言本文介绍了常用的排列组合算法,包括全排列算法,全组合算法,m个数选n个组合算法等。2. 排列算法常见的排列算法有:(A)字典序法(B)递增进位制数法(C)递减进位制数法(D)邻位对换法(E)递归法介绍常用的两种:(1) 字典序法对给定的字符集中的字符规定了一个先后关系,在此基础上按照顺序依次产生每个排列。[例]字符集{1,2,3},较小的数...原创 2012-05-06 11:29:52 · 1179 阅读 · 0 评论 -
C99标准开辟-开辟二维数组
a = new int *[N];//开辟数组新地址 for(int i=0;i原创 2012-05-07 18:00:12 · 173 阅读 · 0 评论 -
八数码的八种境界
八数码的八境界 研究经典问题,空说不好,我们拿出一个实际的题目来演绎。八数码问题在北大在线测评系统中有一个对应的题,题目描述如下:EightTime Limit: 1000MS Memory Limit: 65536K Special JudgeDescription The 15-puzzle ha...原创 2012-05-11 10:42:31 · 226 阅读 · 0 评论 -
几个经典的博弈问题
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显...原创 2012-05-17 10:16:59 · 240 阅读 · 0 评论 -
循环赛算法实现-支持奇偶数 Round Robin Tournament Scheduling algorithm
问题:设有n个运动员要进行网球循环赛。用分治法设计一个满足以下要求的比赛日程表(1)每个选手必须与其他n-1个选手各赛一次;(2)每个选手一天只能赛一次;(3)当n是偶数时,循环赛进行n-1天,当n是奇数时,循环赛进行n天循环赛轮转算法分析,以下内容是其于一篇英文算法分析写的的,出错请指教. 首次适应轮转算法的程序实现的正确性需要一些数学理论基础,这个文档就是总结我对方面的转载 2012-03-20 17:29:24 · 1911 阅读 · 0 评论 -
C语言中常用库函数及其用法-memest()
memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。 e.g.#include #include #includ转载 2012-02-01 15:27:16 · 2788 阅读 · 0 评论 -
C语言中常用库函数及其用法-atol()
函数名: atol 功 能: 把字符串转换成长整型数 用 法: long atol(const char *nptr); 程序例: #include stdlib.h> #include int main(void) { long l; char *str = "98765432"; l = at转载 2012-02-21 22:12:08 · 2437 阅读 · 0 评论 -
C语言中常用库函数及其用法-sscanf()
sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存储的数据 format 格式控制字转载 2012-02-20 21:37:13 · 547 阅读 · 0 评论 -
c文件处理
1、使用文本形式打开,即指定文件模式不含有 'b '的话,在读取时底层(fgetc,fgets,fscanf)会将各种系统(MS-Dos,MS-Window,Macitonish,Unix)下的行结束符(分别是\r\n,\r\n,\r,\n)转换成统一的\n,因此可以通过如下方式判定: #define BUF_MAXLEN 100 char buf[BUF_MAXLEN];原创 2012-03-14 13:32:04 · 334 阅读 · 0 评论 -
全排列(递归与非递归)
递归算法inline void Swap(char& a, char& b) {// 交换a和b char temp = a; a = b; b = temp; } void Perm(char list[], int k, int m) { //生成list [k:m ]的所有排列方式 int i; if (k == m) {//输转载 2012-03-16 00:15:50 · 299 阅读 · 0 评论 -
错题集
1.口袋中有5只红球,4只白球。随机从口袋中取出3个球,则取出1个红球2个白球的概率是多大?类似这样的数学问题,在计算的时候往往十分复杂。但如果通过计算机模拟这个过程,比如进行100000次取球模拟,统计一下指定情况出现的次数对计算机来说是方便且快速的。同样,这个原理也适用于像天气预报这样复杂的系统过程。以下的程序就是用于解决取球概率问题的。仔细阅读代码,补全空白的部分。 sra原创 2012-04-04 10:45:21 · 482 阅读 · 0 评论 -
扑克洗牌
/* 程序描述: 一副纸牌有52张,4种花色,每种花色13张。我们能用一个整数m就表示出所有的52种情况,规则是: m / 13: =0: 红心,=1: 方块,=2: 梅花,=3: 黑桃 m % 13: =0:2,=1:3,=2:4 .... =8:10,=9:J,=10:Q,=11: K,=12:A 比如:m = 15 就表示:方块4 m=38表示:梅花A转载 2012-04-05 17:31:01 · 587 阅读 · 0 评论 -
最大公约数
辗转相除,又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》中,而在中国则可以追溯至东汉出现的《九章算术》。以前学碾转相除的时候也没怎么考虑,看到书上说要先比较两个数的大小再碾转相除我就习惯性地先比较大小了,可是今天发现碾转相除法是不用比较两个数的大小的。。。设我们有转载 2012-04-06 19:27:30 · 929 阅读 · 0 评论 -
杯子量水问题
园子里有朋友提到这个问题,相信各位都见过这种题,有时面试也会碰到。 解题方法有很多,有人靠猜、穷举、倒推,在倒水次数很多的情况下,就会比较麻烦了。 早些年的时候我得出了一种通用而简单的解此类题目的方法。 以一个5升一个6升杯子倒3升水为例,这两个杯子根据装的水量不同,共有22种状态,而加水倒水的过程就是在这些状态之间切换的过程,两个杯子都是空的是初始状态,其中有一个杯转载 2012-04-06 19:25:37 · 2671 阅读 · 0 评论 -
【数学】HDU 1719 Friend
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1719题意:①1,2都是friend数②如果a,b都是friend数,那么ab+a+b也是friend数任务:判断一个数n是不是friend数 (0<=n<=2^30) 设a, b都是friend数,那么可以生成一个friend数 x = ab+a+b = (...原创 2012-04-19 17:28:01 · 128 阅读 · 0 评论
分享