HDU
「已注销」
这个作者很懒,什么都没留下…
展开
-
HDU1028整数拆分(母函数)
这道题是一道母函数的题,看过很多大牛讲母函数,看的一脸懵逼,大脑接受不了大牛的教导,今天突然感觉开窍了,想起了高中老师教的组合数学,终于有点眉目了,希望本篇博文能对组合数学不好的同学有所帮助(组合数学好的估计会觉得本博客毫无营养); 首先,我要说明,这里讲的是指数型母函数(其实就是利用指数的母函数),以整数拆分为例讲解一下 我们用x的指数代表数值大小,系数代表有几种取法(或者说拆分方法),举个例原创 2017-03-15 21:35:46 · 683 阅读 · 0 评论 -
HDU1071(数学题)
题意: 给你这三个点的坐标,求面积 题解: 水题,不想写题解了出去骑行有点虚; 就是利用三点求出直线方程,抛物线方程,然后求积分 直接上代码 code:#include<cstdio>int main(){ int n; scanf("%d",&n); double x,y,x1,y1,x2,y2; while(n--) { s原创 2017-06-03 20:32:12 · 580 阅读 · 0 评论 -
HDU1065(数学水题)
题意: 河水以每年50平方英里的速度侵蚀,告诉你你的位置坐标,问你多少年会被侵蚀到. 不想说话,都快WA哭了,PI的值必须是3.1415926 还有一定要注意格式 重要的话说三遍 一定要注意格式 一定要注意格式 一定要注意格式 求出以你到圆心为半径的半个圆面积,然后算算多少年侵蚀到你就OK了code:#include<cstdio>#include<cmath>//const d原创 2017-06-02 20:42:06 · 460 阅读 · 0 评论 -
HDU1018(数学题)
题意, 数据数目T 接下来T行,每行一个数字n,输出n!的位数; code:一前做过,现在突然一看还有些懵,学的还不扎实啊… 数学题的做法 : n!用科学计数法表示.x表示整数,y表示小数 这样只要暴力求出公式左边,然后取整加一输出就OK了#include<cstdio>#include<cmath>int main(){ int n,T; double res=原创 2017-06-02 20:01:47 · 369 阅读 · 0 评论 -
HDU2149(巴什博弈)
博弈论最简单的的内容 入门 题意也没有什么坑 code:#include<cstdio>int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF) { if(n>=m) { printf("%d",m); for(int i=m+1;i<=n;原创 2017-05-03 19:51:08 · 373 阅读 · 0 评论 -
HDU2516(斐波那契博弈)
泪崩什么都不懂 继了解了威佐夫博弈后,才发现原来还有这么多博弈 斐波那契博弈: 有一堆物品,两人轮流取物品,先手最少取一个,至多无上限,但不能把物品取完,之后每次取的物品数不能超过上一次取的物品数的二倍且至少为一件,取走最后一件物品的人获胜。结论是:先手胜当且仅当n不是斐波那契数(n为物品总数)还是 code#include <iostream>#include <string.h>#in原创 2017-05-03 13:12:56 · 348 阅读 · 0 评论 -
HDU5973(威佐夫博弈+Java大数)
今天做题长知识了,除了巴什博奕,尼姆博奕,竟然还有威佐夫博弈 威佐夫博弈定义: 有两堆各若干的物品,两人轮流从其中一堆取至少一件物品,至多不限,或从两堆中同时取相同件物品,规定最后取完者胜利。 直接说结论了,若两堆物品的初始值为(x,y),且ximport java.math.BigDecimal;import java.util.Scanner;public class Main {原创 2017-05-03 13:06:37 · 537 阅读 · 0 评论 -
HDU2149(巴什博弈Bash Game)
题意可以抽象成一下模型: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,原创 2016-05-11 18:58:08 · 382 阅读 · 0 评论 -
HDU1864巴什博奕(水题)
题解: 与此题相同[(http://blog.csdn.net/gaokao_sijiao/article/details/51377382)] 代码如下:#include <cstdio>int main(){ int c,n,m; scanf("%d",&c); while(c--) { scanf("%d %d",&n,&m);原创 2016-05-12 20:37:40 · 287 阅读 · 0 评论 -
HDU2147(模拟找规律)
首先模拟打表,从表(1表示必胜态,0表示必败态)中找到规律:有偶数先手一定赢,没有偶数则后手赢 打表代码#include <stdio.h>bool gird[2000+10][2000+10];//1代表必胜点 0代表必败点int main(){ int i,j; int n,m; gird[2000][1]=0; for(i=2000;i>0;--i)原创 2016-05-12 21:10:09 · 364 阅读 · 0 评论 -
HDU1007经典最近点对
输入点的个数n 接下来n行输入n个点 输出最近点对 用分治法求最近点对,算法不多说了, code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>using namespace std;#d原创 2017-03-13 20:46:32 · 348 阅读 · 0 评论 -
HDU2152母函数
题目是汉语没什么难理解的地方,直接上代码: 如果大家对母函数还不够理解,可以尝试HDU1028 这里写链接内容 那道题还是比较简单的。 题目链接 这里写链接内容 code: (参看了这里写链接内容,但是没搞明白第二种,还需努力)#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#inclu原创 2017-03-16 16:19:08 · 310 阅读 · 0 评论 -
HDU 1142详解带翻译 (以前看了好多大神的算法看不懂,学了之后终于看懂了,献给和我一样刚入门的菜鸟)
HDU 1142题目翻译:(英语差劲)问题描述森林是美丽的,吉米要采取不同的路线每天。他还希望在天黑前回家,所以他总是一直朝着他家的行进。如果存在从B到他家的路线比从A短, 则可以由A走到B。计算所有可能的路线。 输入输入包含多个测试用例,已0结束..吉米一行已编号的每个路口或从1开始,他的办公室编号为1,他的房子是编号为2。每个测试用例的第一行给出结点的数目N,1 这道题原创 2016-04-13 20:23:18 · 803 阅读 · 0 评论