- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 三角形面积的计算公式,外接圆半径
已知一边长a和该边上的高h 已知两边长a,b和它们的夹角C 已知三角形三边长a,b,c 用海伦公式 已知三角形三边长a,b,c ,及其外接圆的半径R已知三角形三点坐标A(x1,y1) B(x2,y2) C(x3,y3) 求三角形面积公式三角形面积的计算公式,外接圆半径
2011-03-21 22:40:00 22957
原创 购物问题(摘自《国际大学生程序设计竞赛例题解三》)
<br />/*规定某些商品不能同时购买,而且每种商品只能买一件。如何获得最大优惠。输入格式:第一行两个整数K,M(1<=K<=1000),K表示商品数量,K中商品的编号一次为1到K。接下来K行,第i行,表示购买商品K能够节省的金额。在接下来M行,每行有两个整数A和B,表示A,B不能同时购买。*//*分析:本题的关键是构造一个节点带全的图,结果表示商品,节点权值表示商品优惠金额,边表示边所连的两个点的商品不能同时购买。题目就可以转化为在图中找出一个点集,该点集中的
2011-03-21 20:30:00 1246
原创 M*N的矩阵
<br />/*<br />给定一个M*N的矩阵,其中的每个元素都是-10到之间的整数。你的任务是从左上角(1,1)开始走到右下角(M,N),<br />每一步只能够向右或者向下,并且不能够走出矩阵的范围。所经过的方格里的数字都必须被选取,<br />请找出一条最合适的道路,使得在路上被选取的数字之和尽可能小的整数。<br />*/<br /> <br />/*分析:<br /> 从左上角走到第x行y列时,所取数的和为d,这个状态能否到达?<br /> 0 <= x <= 10, 0 <= x <
2011-03-20 12:22:00 8578 2
原创 PKU 2247 Humble Numbers
PKU 2247 Humble Numbers题意:由素数因子2,3,5,7组成得到的数(谦卑数)从小到大的序列。求该序列的第n个数。分析:这题只要把那些谦卑数打表出来就可以了。#include #define MAX 5842long long a[ MAX + 5];long min(long x,long y){ if(x>y) return y ; else return x;}void printTable(){ int i;
2011-03-13 21:46:00 1010
原创 PKU 1011 Sticks
/* 有N截木棒,能将它们接成最少数长度相同的木棍,求此时的长度len.*//*据说是经典深搜+剪枝题, 我感觉也没有比较隐蔽的需要剪枝的地方*/#include #include #define MAX 64using namespace std;int len,N,M; //len为原始棍子长度, M为原始棍子数量 int s[ MAX],mark[ MAX];bool flag;int cmp(int a, in
2011-03-13 16:15:00 664
原创 HDU 1018 Big Number
Big Number题意:求n!的位数。分析:n(1 ≤ n ≤10^7),n很大,直接求麻烦。精确位数:sum = log10(1)+log10(2)+....log10(n-1)+log10(n).#include #include int main(){ //freopen("input.txt","r",stdin); int n,i,cases; double sum; while(scanf("%d",&cases)!=EOF) { wh
2011-03-13 16:09:00 539
原创 Catalan数
<br />Catalan数<br />1.递推公式: f(n)= f(0)=1,f(1)=1;<br />2.组合公式1:f(n)= <br />3组合公式2:f(n)=- <br />应用举例:<br />1. 二叉树有n个结点,问:该二叉树能组成多少种不同的形态<br />2. 有n个A和n个B排成一排,从第一个位置开始到任何位置,B的个数不能超过A的个数,问有多少种排列方式。<br /> n=1时:AB
2011-03-13 15:59:00 827
原创 multiset(STL)的使用
<br />// multiset的使用<br />/*<br /> 输入格式<br />第行:一个正整数N(N≤,000),表示总共的天数。<br />第2 行到第N+1 行:每一行描述一天中收到的帐单。先是一个非负整数M,表示当天<br />收到的账单数,后跟M个正整数(都小于,000,000,000),表示每张帐单的面额。<br />输入数据保证每天都可以支付两张帐单,并且帐单会在最后一天全部付清。<br />输出格式<br />输出共N 行,每行两个用空格分隔的整数,分别表示当天支付的面额最小和最大
2011-03-13 15:57:00 838
原创 priority_queque 优先队列
priority_queque 优先队列,即有序队列。每加入一个元素会自动排序(默认从小到大)。 使用例子:每次取出最大的两个求和,将和加到数组中。#include #include using namespace std;int sum;int N=10;int main(){ int a[]={12,23,11,32,12,3,7,34,55,9}; priority_queue q; //优先队列 int i; for(i=0;i { q.
2011-03-13 15:57:00 1293
原创 小球下落,根据开关选择向左走,还是向右走,输出第n个球所在结点
<br />/*<br /> *小球下落,根据开关选择向左走,还是向右走,输出第n个球所在结点<br /> */<br /> <br />#include <stdio.h><br />#include <iostream><br />#include <stdlib.h><br />#include <string.h><br />using namespace std;<br /> <br />const int MAXD = 20;<br />int s[1<<MAXD]; //最大结点个数为2的M
2011-03-13 15:56:00 745
原创 PKU 1055 The Last Non-zero Digit
The Last Non-zero Digit题目大意:给N,M( N (0 解题分析:N (0 1.先把范围缩小。怎样求出n!的最后一个不是0的数呢?先举个简单的例子,分析一下规律。比如说要求10!的最后一个不是0的数。10!=1*2*3*4*5*6*7*8*9*10。.由于质数为2和5的数相乘后尾数会为0,所以我们可以除去质因数2和5数。1*2*3*4*5*6*7*8*9*10,去掉质因数为2和5的结果为:1*1*3*1*1*3*7*1*9*1,去除了质因数剩下的数字就只用1、3、7
2011-03-13 15:49:00 871
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人