![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hdu
yangdelu855
算法工程师
展开
-
hdu 3037 Saving beans 卢卡斯定理
点这里卢卡斯定理的模板题利用隔板法易知组合数C(n+m,m)ans=C(n+m,m)%p快速幂求逆元#include #include #include #include using namespace std;typedef long long ll;const int maxn= 100000;ll mod;//=1e4+7;ll f[maxn];voi原创 2017-07-31 21:03:09 · 186 阅读 · 0 评论 -
hdu 3944 DP?
点这里TLE到WA。。改了无数次的代码。。最后差在取模少了一次看了题解就一直被题解牵着走。。。。。解释有大佬的博客写的很清楚。。记个教训#include #include #include using namespace std;typedef long long ll;int f[10005][10005],mf[10005][10005];int pri原创 2017-08-04 17:00:42 · 177 阅读 · 0 评论 -
hdu 6112 今夕何夕
点这里还是能力不够写的代码简直要把自己绕死了暴力水题注意4004-02-29不注意2.29只在闰年出现的话会输出4005正解应该是4032因为这个wa了好几发。。#include #include using namespace std;int tt2[10010][13][35];void js(){ int f; for (int i = 2017原创 2017-08-12 20:46:24 · 256 阅读 · 0 评论 -
hdu 5973 Game of Taking Stones java大数+根号5的精度
威佐夫博弈的模板题但是数据太大 用到java大数 还需要注意精度问题 没具体数就复制了下面的几行根号5的10000位因为package wa了好几发import java.math.*;import java.text.*;import java.util.*;public class Main { public static void main(String原创 2018-01-12 18:51:45 · 238 阅读 · 0 评论 -
hdu 5976 Detachment 逆元+打表
一开始以为是规律题 找了好久没找到规律题意很明确最后发现它的积和阶乘有关系 两个数越接近和越大#include #include #include#include#include using namespace std;const int mod=1e9+7;const int maxn=50000;typedef long long ll;ll f[maxn];l原创 2018-01-12 18:56:32 · 166 阅读 · 0 评论 -
hdu 5979 Convex
给角的个数和度数和边的长度求多边形面积 水题。。。#include#include#includeusing namespace std;#define pi 3.1415926int main() { int m,n,a[15]; float ans; while(cin>>m>>n) { for(int i=0;i<m;i++)原创 2018-01-12 19:06:06 · 160 阅读 · 0 评论 -
hdu 5978 To begin or not to begin 博弈水题
很简单的博弈代码也很简单#include #include #include#include#include #define pi 3.1415926using namespace std;int main(){ int m,n; while(cin>>m) { if(m%2==1) puts("0");原创 2018-01-12 19:10:41 · 202 阅读 · 0 评论 -
hdu 5974 A Simple Math Problem 一元二次方程
已经是第三遍做这个题了 (两个数的和)和(这两个数的最小公倍数)的最大公约数等于这两个数的最大公约数 gcd(x,y)=gcd(x+y,lcm(x,y))设x是其中一个数 另一个数为a-x x*(a-x)/gcd(a,b)=lcm(a,b)#include #include #include#include#include #define pi 3.1415926u原创 2018-01-12 19:17:56 · 196 阅读 · 0 评论 -
hdu 5514 Frogs 容斥或欧拉函数
题目链接题意 输入n,m,n代表青蛙个数 m代表石头个数 石头围成一圈 由0编号到m-1 第二行输入n只青蛙的步长,一块石头不能被两只青蛙同时占领,求石头编号的和,以第一组样例2 129 10 为例2 即两只青蛙 12是石头个数 两只青蛙最开始都在编号为0的石头上 第一只青蛙 可以跳到 编号9 (9+9)%12 编号6 (18+9)%12 编号3 (27+9)原创 2018-01-15 15:01:08 · 212 阅读 · 0 评论 -
hdu 5512 Pagodas找规律
题目链接给定n,m,k 可以建的塔的标号可以是m+k或m-k或k-m,两个人互相建塔,问在[1,n]中谁先没有塔可以建,写几组数据找找规律就会发现,建塔的数都是gcd(m,k)的倍数,判断n中gcd(m,k)的倍数的个数就行了#include #include #include using namespace std;int gcd(int n,int m){原创 2018-01-15 15:09:48 · 227 阅读 · 0 评论 -
hdu 5690 All X
点这里非常好的一道题首先看到F(x,m)第一反应肯定是先把它转化为可表示的数字想到11111111..... 乘以某个数就可以构造由x组成的m位数字然后就是构造1111111..... ((10^m-1)/9)*x 然后就完成了构造因为不能确定k是不是素数所以不能用逆元(一开始总不对就是因为求了9的逆元。。。。)可以把9给mod((10^m-1)*x)mod原创 2017-08-11 13:28:25 · 147 阅读 · 0 评论 -
hdu 1452 happy2004
点这里和poj1845异曲同工可以看看这篇点击打开链接#include #include #include #include #define mod 29using namespace std;typedef long long ll;int prime[1000005];int vis[1000005],cnt;void init(){ cnt = 0;原创 2017-08-03 16:37:57 · 190 阅读 · 0 评论 -
hdu 1003 Max Sum 简单dp
点这里求最大和 加到和小于0的时候重新开始计算dp入门题#include #include #include #include using namespace std;int data1[100005],data2[100005];int main(){ int n,m; while(~scanf("%d",&n)) { i原创 2017-07-31 21:07:23 · 183 阅读 · 0 评论 -
hdu 1009 FatMouse' Trade 贪心入门
点这里贪心入门题#include #include #include #include using namespace std;struct mn{ double a,b,c;} data[2002];bool cmp( const mn &x,const mn &y){ return x.c>y.c;}int main(){ double原创 2017-07-31 21:13:00 · 174 阅读 · 0 评论 -
hdu 1018 Big Number
点这里斯大林公式n! = sqrt(2*pi*n)*(n/e)^n将两边去对数log10(n!) = 1/2log(2*pi*n) + n*log(n/e)得到位数注意 pi 和 e 的精度#include #include #include #define e 2.718281828459#define pi 3.1415926using names原创 2017-07-31 22:17:29 · 146 阅读 · 0 评论 -
hdu 1021 Fibonacci Again
点这里暴力水题#include #include using namespace std;int f[1000000];int main(){ int a; while(~scanf("%d",&a)) { f[0]=1; f[1]=2; for(int i=2;i<1000000;i++) f[i]=(f原创 2017-07-31 22:24:20 · 153 阅读 · 0 评论 -
hdu 4059 The Boss on Mars
点这里题目大意:求1-N-1之间和N互质的数的四次方和快速幂求逆元容斥原理素数打表素因子分解二进制枚举子集高次求和这里有一个公式点击打开链接也可以现推由三次推N^2由五次推N^4大体思路就是素因子分解得到的因子组合,然后用到容斥原理,奇数个因子的情况加到一起,偶数个因子的情况减,然后求高次和的时候,涉及到取模所以要求1e9的逆元,原创 2017-08-07 16:37:17 · 206 阅读 · 0 评论 -
hdu 1047 Integer Inquiry 大数加法
点这里#include #include #include #include using namespace std;int main(){ int a; char s[200]; int shu[200][200],max,i,l,len,p,k,bb,j; int ans[200]; int h,t,ys; scanf("%d"原创 2017-07-31 22:28:25 · 206 阅读 · 0 评论 -
hdu 5685 2016"百度之星" - 资格赛(Astar Round1)Problem A
点这里一道需要注意角标的题打表快速幂求逆元#include #include #include #include #include using namespace std;const int mod=9973;typedef long long ll;ll an[100005];char l[100005];long long pow1(long long n原创 2017-07-31 23:12:38 · 183 阅读 · 0 评论 -
hdu 5688 2016"百度之星" - 资格赛 Problem D
点这里。。不知道map的用法就一直TLEmap:可以用来遍历数据原创 2017-08-01 11:59:32 · 183 阅读 · 0 评论 -
hdu 2841 Visible Trees
点这里素数打表素因子分解容斥定理固定m 在1-n中找与m互质的数#include #include #include #include using namespace std;const int maxn=1e6+5;int prime[maxn];int vis[maxn],cnt,p;typedef long long ll;ll gcd(ll n, ll原创 2017-08-08 19:21:14 · 162 阅读 · 0 评论 -
hdu 5114 Collision 扩展欧几里得
题目链接题意 先给出一个矩形的范围a,b,然后给出两个点的坐标,这两个点都以速度(1,1)移动碰到矩形边时 以(-1,-1)移动再循环往复,两个点相碰撞时的坐标。可以将速度分解,直接求时间,可以分为四种情况第一种x1==x2&&y1==y2这时两个点已经碰撞 所以tc=0第二种x1==x2&&y1!=y2只需判断什么时候y相等 推出公式tc=ty=b-(y1+y2)/2;第三种x1!=x2&&y1原创 2018-01-17 19:40:04 · 205 阅读 · 0 评论