- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 HDU1071
HDU1071为一题纯粹的简单数学的积分问题,只是求解抛物线、直线之后求解其所夹的面积大小,代码如下: #include"stdio.h"#include"math.h"double absf(double a){ return a>0?a:-a;}struct point { double x,y;}p1,p2,p3;int main()
2011-12-15 12:58:01 621
原创 HDU1724
HDU1724,本体大意为给你一个椭圆的长半轴与短半轴a、b以及两条直线l与r让你求出夹杂在l与r之间的面积:本体思路很简单直接利用定积分牛顿--莱布尼茨公式求解定积分。纯粹一道数学题代码如下: #include"stdio.h"#include"math.h"double absf(double a){ return a>0?a:-a;}#define PI 3.
2011-12-14 18:41:33 332
原创 HDU1174
HDU1174题目相比不用解释了吧,对此来解释一下本题的大致思路,首先先利用题目已知的条件可以将匪徒与警察的头部的坐标位置求解出来。之后根据头部球心的坐标位置得到一个向量l在根据题目已知的枪口的向量求解出两个向量中的向量中的终点与直线l的距离,判断一下距离小于匪徒半径就可以爆头。虽然,到这边思路是可以的;但是还必须考虑方向以为一个警察不可能瞄准在背后的匪徒。其代码如下: #inclu
2011-12-14 18:03:36 1009
原创 HDU1233
HDU1233为一道纯正的prim算法题目,这题目听别人说往往是作为我们这些菜鸟进入学习prim算法的基础题目;本人也是在学习图论算法,根据算法思路与模板就一次A过了: #include"stdio.h"#define inf 1000000000int d[110][110],n;void prim(){ int i,j,k,min[110],v[110],su
2011-12-08 19:33:47 408
原创 HDU1301
HDU1301本题为一道简单的图论的prim算法,虽然本题思路明确但是,本题的前期数据的处理为一大难题;本人也在此WA了2次本来以为是自己写的算法的错误,后来发现对其数据处理存在着错误。代码如下:#include"stdio.h"#include"string.h"#define N 30int d[N][N],xb[N],n,jl[N];char c;void prim(
2011-12-08 19:29:09 531
原创 HDU1164
HDU1164大意如下,任何一个数都可以分解为若干个素数的乘积;也就是代数定理。此题为一道水题,一次就AC了。首先可以利用素数够造一个素数表,之后将其素数因子挨个存储之后打印#include"stdio.h"int d[10000],count=0;int prime(int n){ int i; if(n!=2&&n%2==0||n!=3&&n%3==0||n!=5&&n%5
2011-12-02 21:45:19 364
原创 HDU1907
HDU1907本题为一题尼姆博弈的变形题目为N堆东西2人轮流取,取完的人为败;此时需要对尼姆进行一步改进将其分为5种状态这5种状态划分如下:1. T2 表示在尼姆对n堆东西进行异或值不为0,并且东西数大于2的堆数大于22. T0表示在尼姆对n堆东西进行异或值不为0,并且没有东西数大于2的堆数3. S2表示在尼姆对n堆东西进行异或值不0,并且有东西数大
2011-12-02 21:43:55 618
原创 HDU1850
HDU1850 本题为一道,尼姆博弈的一道改进题目,题目问题是给你几堆扑克;让你判断如果你能赢,你第一次操作都能使对手败的操作次数有多少种。根据题目大致可以根据其特点,得到如下思路;因为你每次能从任意选择一堆并取走其中的任意张牌。那么,只要看每一堆中有多少种操作;只要每一次中改变的不使之得到如下结果ai^k对于某个局面(a1,a2,...,an),若a1^a2^...^an!=0,一定存在某个
2011-12-02 21:43:09 658
原创 HDU1847
HDU1847本题也是一道巴什博奕的一道转型题,虽然没有那么死;但是,只要你将必胜点找出来就可以看出比败点位3的倍数#include"stdio.h"int main(){ int n ; while(scanf("%d",&n)!=EOF) { if(n%3==0) { printf("Cici\n"); } else printf
2011-12-02 21:42:23 439
原创 HDU1527
HDU1527本题也一道典型的基础的威佐夫博奕问题,问题可以根据其原理可以解决;但是必须注意的是,利用min(m,n)==黄金分割数*abs(m-n)可以判断是不是落在奇异局势中。#include"stdio.h"#include"math.h"int main(){ int n,m; double d = (sqrt(5)+1)/2; while(scanf("%
2011-12-02 21:41:30 336
原创 HDU1299
HDU1299本题刚开始思路是1/x= 1/y+1/z那么这个表达式可以修改为1/x=1/(x+a)+1/(x+b)经过整理可以得到x^2=a*b,那么只要查看满足这个表达式a,b的个数.却被TIM了其代码如下:#include"stdio.h"int main(){ int t,n,i,count,case1=0,j; scanf("%d",&t); while(t--)
2011-12-02 21:40:13 395
原创 HDU1286
本题思路明确,应该是一道水题;但是却让我WA了1次TIM了1次,郁闷ing;第一次看了一下是欧拉公式我自己现在还是认为可以解决但是却WA了,不找到哪位大牛可以指导下。第二次,就用打表的但是调用了最大公约数超时了;后来想到了素数打表的方法,过了109MS。 下面是WA的欧拉函数算法,希望大牛指点#include"stdio.h"int eular(int n){ int i,
2011-12-02 21:39:15 387
原创 HDU1222
HDU1222本题初看一下有点难度,但是仔细想一下却是十分简单,只要判断兔子所在的位置数值与狼每次寻找间隔的数值是否互素;就可以判断兔子是否能够存活了。 #include"stdio.h"int gcd(int a,int b){ return b?gcd(b,a%b):a;}int main(){ int p,n,m,i; while(scanf("%d",&p
2011-12-02 21:37:48 358
原创 HDU1215
此题明显是一道水题,但是自己却被WA了一次;后来认真看了一下原来是如果两个因子相同的我多算了一次,之后改了一下就AC了。 #include"stdio.h"int main(){ int n,i,j,m,sum; scanf("%d",&n); while(n--) { sum=1; scanf("%d",&m); for(j=2;j*j<=
2011-12-02 21:37:00 296
原创 HDU1211
HDU1211题意为利用算法公式m=c^d%n其中 n=q*p 与e*d%f=1%f而f=(p-1)*(q-1)本题就一个地方处理一下其他方面相对来说很水,首先题目是已知c、p、q那么你可以从中求取d那么d就是所谓的e的逆元为了能加快寻找利用f的关系求出逆元,最后利用蒙哥马利罗比算法求出m。 #include"stdio.h"int fun(int a,int b,int n)
2011-12-02 21:36:15 457
原创 HDU1164
HDU1164大意如下,任何一个数都可以分解为若干个素数的乘积;也就是代数定理。此题为一道水题,一次就AC了。首先可以利用素数够造一个素数表,之后将其素数因子挨个存储之后打印 #include"stdio.h"int d[10000],count=0;int prime(int n){ int i; if(n!=2&&n%2==0||n
2011-12-02 21:02:00 298
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人