数学
文章平均质量分 71
Cai_Haiq
此人很懒,随便改了几个字
展开
-
HDU6035(数学题)
很多博客说这是树形DP,菜菜的我并不懂。 这个题需要逆向思考,用总的可能数,减去对总的贡献不足的的同色连通块,就得到答案了,这个题难在树上连通块的搜索。 刚刚学会,还不是那么精通,直接上代码 数组的用处都写进去了,可以跟着程序跑跑,就能得到答案了,跑了一中午的我是个弱智。。。。 感谢鹏哥的代码 code:#include<cstdio>#include<vector>#include<原创 2017-07-31 15:03:01 · 522 阅读 · 0 评论 -
HDU1792(公式)
继续整理公式: 若A,B为两个互质整数,那么A,B最大不能组合的数为A*B-A-B; 不能组合的数的个数为:(A−1)∗(B−1)2{{(A-1)*(B-1)} \over 2} Orz…大佬们牛 知道了公式水题。。。 code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#includ原创 2017-09-03 15:41:40 · 549 阅读 · 0 评论 -
HDU1717(小数化分数,思维数学题)
orz大佬,循环小数化分数 有限小数很简单,无限小数的化法是利用了无限小数循环的性质,把利用倍数关系去掉无穷部分。 以0.94(375)为例子。 现将他乘100,变为94.(375)。 然后在取他的100000倍,变为94375.(375) 这样两个数小数点后相同,相减后就变为整数了。 以x代表原数; 100000x-100x=94375.(375)-94.(375)=94281 9原创 2017-09-07 18:57:43 · 470 阅读 · 0 评论 -
HDU2522(分数化小数,简单的模拟)
比较简单的直接模拟,只要重复出现相同的数,那么就一定找出循环来了。就像UVA202那样直接模拟找重复就好了。 code:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int num[100010];void div(int n){ int l=1; num[1]=1;原创 2017-09-20 21:20:58 · 435 阅读 · 0 评论 -
LightOJ-1027DangerousMaze
期望&概率第一发。 蜜汁明白过程,求期望的时候就像状态转化的一个过程,感觉自己好菜啊。蓝瘦。 对于可以出去的门来说花费TiT_i的时间就出去了,Ei=Ti∗1nE_i=T_i*\frac{1}{ n} 对于不可以出去的们来说浪费了AiA_i的时间还没出去,Ei=Ai+EE_i=A_i+E 所以对n个门进行求和运算: E=1n∑i=1door1Ti+1n∑j=1door2Ai+EE=\fra原创 2017-10-17 19:39:37 · 369 阅读 · 0 评论 -
HDU3306(矩阵快速幂)
正在死磕矩阵类的题,这个题不是很难,想到构造关于A2nA_n^2的矩阵就没问题了。 公式给我们了,直接构造矩阵就好了 ⎡⎣⎢⎢⎢⎢A2nA2n−1AnAn−1Sn−1⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢x21x1y20002xy0y00000⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢A2n−1A2n−2An−1An−2Sn−2⎤⎦⎥⎥⎥⎥ \begin{bmatrix} A_n^2\\ A_{n-1原创 2017-10-10 21:10:01 · 337 阅读 · 0 评论 -
HDU5976(找规律+费马小定理求逆元)
这个题我一开始以为只是个简单的DP,接着竟然交了个超时,我也很绝望,后来发现不能用DP的思路去做,因为不能出现重复出现的数字。 然后就觉得是找规律的题目。辉哥找出来的规律,然后我说了一下自己的想法就上课去了。今天补上这个题。 code:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>usi原创 2017-10-20 16:01:50 · 676 阅读 · 0 评论 -
HDU5979水题
水题 code:#include<cstdio>#include<cmath>#include<iostream>using namespace std;const double PI=acos(-1.00);int main(){ int n,d; while(scanf("%d%d",&n,&d)!=EOF) { double sum=0;原创 2017-10-20 16:03:06 · 419 阅读 · 0 评论 -
矩阵十题1(nyoj298)
继续深造矩阵类题目,看到大佬们都有矩阵十题博客,我也学习了,只有题目,没有解析系列1; 通过矩阵变换将所有操作都存到矩阵中,最后输出答案即可。 矩阵的构造方法 直接上代码#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#in原创 2017-10-11 20:41:58 · 386 阅读 · 0 评论 -
HDU1575(矩阵快速幂模板题)
简单的矩阵快速幂,输入矩阵直接套模板做就行了。 code#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>//a&3==a%4using namespace std原创 2017-10-11 20:57:36 · 400 阅读 · 0 评论 -
HDU5974(数学题)
太天真了,以为10410^4直接跑暴力了,结果T到哭泣,12W的数据量,只能用公式求。 这个题要推出来gcd(x,y)=gcd(a,b)gcd(x,y)=gcd(a,b),然后转换成一元二次方程的韦达定理,接下来就是验证方程是否有整数解。 code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>原创 2017-10-21 09:23:47 · 546 阅读 · 0 评论 -
HDU5978(签到题)
code:#include<cstdio>int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n&1) { printf("0\n"); } else { printf("1\n");原创 2017-10-21 10:39:05 · 432 阅读 · 0 评论 -
HDU5980(水题)
签到题 code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>//a&3==a%4using namespace std ;#define ll long原创 2017-10-21 10:52:03 · 349 阅读 · 0 评论 -
POJ3233(递推+矩阵快速幂)
矩阵十题3 递推求矩阵前n次幂的和,想明白了还是不难,还是要多做题啊 long long 会超时,int 不会,特地百度了一下,发现原来long long 的运算比int慢 code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<stri原创 2017-10-12 12:01:46 · 537 阅读 · 0 评论 -
POJ3070(简单的矩阵快速幂)
模板题,没啥东西; code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>#include<time.h>//a&3==a%4using namespace std ;#define ll原创 2017-10-15 19:09:48 · 426 阅读 · 0 评论 -
HDU1757(矩阵快速幂+简单的矩阵构造)
很简单的矩阵构造看似很麻烦,其实直接写就ok了。 ⎡⎣⎢⎢⎢⎢f(n)f(n−1)....f(n−9)⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢a100....0b0100c0010d0000e0000f0000g0000h0001i0000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢f(n−1)f(n−2)....f(n−10)⎤⎦⎥⎥⎥⎥ \begin{bmatrix} f(n)\原创 2017-10-15 20:25:57 · 351 阅读 · 0 评论 -
HDU6124(有趣的数学题)
为什么可以菜成这样,签到题都不会. 如果a≤b:a\le b:则a%b有(n+1)2a\%b有{(n+1)\over 2}种可能. 如果a≤ba\le b则有1种可能. 总共有(n+1)2+1{(n+1) \over 2}+1种可能. code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm原创 2017-08-16 10:13:28 · 969 阅读 · 0 评论 -
HDU6206Apple(Java可以过,但是我有一个大胆的想法)
比赛的时候我有些蠢了。。。 本来想这是个签到题,一看69发,0A。接着就怂了。然后我有个大胆的想法,(接下来说大胆的想法)当时把我激动坏了,(真的蠢)没有这个大胆的想法一看有Java 过了的早就想到用大数A了。结果写了好久才发现人家大数A了,才去写Java。。。 这个题的坑在于数据范围超过了double的精度,所以会有精度丢失,用Java大数就怕了。BigDecimal的精度足够。 Java原创 2017-09-18 21:39:43 · 1048 阅读 · 0 评论 -
HDU2582(素数筛)
还是整理公式遇到的水题。 公式:若G(n)=gcd(C1n,C2n...Cn−1n)G(n)=gcd(C_n^1,C_n^2...C_n^{n-1}),那么G(n)为 (1)n为素数,答案为n (2)n有多个素数因子,答案为1 (3)n有一个素因子,答案为该素因子; 那么这个题就很简单了,除了素数和由一个素数相乘的其他的都加1 直接code:#include<stdio.h>#incl原创 2017-08-31 20:45:33 · 431 阅读 · 0 评论 -
莫比乌斯反演定理推导
已知已知 F(n)=∑d|nf(d)F(n)=\sum_{d|n}{f(d)} 求证: f(n)=∑d|nμ(d)F(nd)f(n)=\sum_{d|n}{μ(d)F({n \over d})} 其中μ(d)μ(d)为莫比乌斯函数,定义如下: (1)若d=1d=1则μ(d)=1μ(d)=1; (2)若d=p1+p2+...+pk,pid=p_1+p_2+...+p_k,p_i为互异素原创 2017-07-29 10:23:49 · 1046 阅读 · 0 评论 -
HDU6053(莫比乌斯函数+容斥定理)
题意: 给你一个长度为n的数组a,{a1,a2,a3...ana_1,a_2,a_3...a_n},求一个长度也为的数组b{b1,b2,b3...bnb_1,b_2,b_3...b_n}存在的种类数,b有两个要求,①1<bi<ai;②数组b中任意子集的最小公因数大于11<b_i<a_i;②数组b中任意子集的最小公因数大于1 题解:根据题意,b中数必须都是一个数的倍数. 首先遍历a数组找出其中最原创 2017-07-31 09:32:47 · 505 阅读 · 0 评论 -
HDU6050(矩阵快速幂)
矩阵快速幂原创 2017-08-01 10:54:23 · 668 阅读 · 0 评论 -
HDU6129(杨辉三角和万恶的Lucas)
菜死了,比赛的时候T到哭 表格中aia^i代表i个a异或 m a1a_1 a2a_2 a3a_3 a4a_4 1 a1a_1 a1a_1^a2a_2 a1a_1^a2a_2^a3a_3 a1a_1^a2a_2^a3a_3^a4a_4 2 a1a_1 a21a_1^2^a2a_2 a31a_1^3^a22a_2^2^a3a_3 a41a_1^原创 2017-08-16 16:28:28 · 344 阅读 · 0 评论 -
HDU6127Hardchallenge(优美的暴力)
没想到竟然是暴力,再一次菜哭在角落。 题意:给你n个点(不包括原点),每个点都有价值,任意两个点两成的线段的价值是两点的乘积。现有一条过原点的直线。求这条直线穿过的所有嫌多的总价值。 以y轴开始顺时针遍历所有点,l代表直线左边的点的和,r代表直线右边的所有点的和。遍历过程中,如果l*r大于之前的乘积,就更新乘积。 code:#include<cstdio>#include<string.原创 2017-08-16 20:25:23 · 381 阅读 · 0 评论 -
HDU6059(01字典树求异或最大值)
题意:求a中三个数ai,aj,ak,ai⊕aj<aj⊕ak(i<j<k)题意:求a中三个数a_i,a_j,a_k,a_i\oplus a_j<a_j\oplus a_k(i<j<k) 这里要动态维护字典树,每当输入一个数,就更新一下字典树。最后减去i>j的情况(这里最难懂),搞了好久,算是会了,手撕代码时问题百出,还是没有学到骨子里,留下以后在复习。 参看了两位大佬的博客: 大佬博客 小老博原创 2017-08-05 09:59:35 · 820 阅读 · 0 评论 -
HDU6092(有趣的数学题)
莫名TLE,莫名WA,AC好难。。。#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>//a&3==a%4using namespace std;#define ll long long#defi原创 2017-08-09 18:43:33 · 404 阅读 · 0 评论 -
HDU1164(因数分解水题)
好久之前想做的一个题,今天一看好水。我以前是得有多菜啊。 菜哭在角落。 题意: 给你一个数,要求输出x的所有质因子,并以相乘的形式给出。code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>原创 2017-08-17 10:30:13 · 385 阅读 · 0 评论 -
HDU6075(签到水题)
因为输出任意一种答案,直接mod2就行了,然后如果偶数多,就输出2 0 否则输出2 1#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>using namespace std;#define ll原创 2017-08-03 18:55:44 · 486 阅读 · 0 评论 -
HDU6077
原来是直接模拟,还是队友牛逼 大佬博客#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s[105][105];int fin(int a){ if(s[0][a+1]=='.') { if(s[1][a]=='X'原创 2017-08-03 18:59:19 · 397 阅读 · 0 评论 -
HDU6097(数学题。。。。)
看了题解好久,终于弄懂了,真的是菜。。。。直接上图: 过点P做P的反演点P1P_1,使得OP∗OP1=OD2=r2OP*OP_1={OD}^2=r^2 则OPOD=ODOP1=DPDP1则{OP \over {OD}}={OD \over {OP_1}}={DP \over {DP_1}} 所以只要求出DP1DP_1的最小值,就可以按比例求出DP。同理求出DQ1DQ_1的最小值,就可以按比原创 2017-08-11 11:07:32 · 715 阅读 · 3 评论 -
HDU6038(多校联合F题)
多校联合HDU数学题原创 2017-07-27 10:51:00 · 420 阅读 · 0 评论 -
HDU6069(思维+素数定理)
比赛的时候有想到一次找所有数的一个共同因数,结果没有考虑素数的情况,想歪了,成了莫比乌斯反演。。。。。 素数定理:任意一个数都可以表示为n=pa11pa22…pakkn=p_1^{a_1}p_2^{a_2}…p_k^{a_k},n的所有因子个数为(a1+1)(a2+1)…(ak+1)(a_1+1)(a_2+1)…(a_k+1),然后对与每个在范围内的质数,都进行一次遍历,看是不是l-r中某些数的因原创 2017-08-04 17:06:46 · 477 阅读 · 0 评论 -
HDU6105(博弈题,非酋得不到救赎)
不能有下图的那种情况,即不能同时有两个叶子结点。 将树切分看看对应的k够不够用,然后就可以输出答案了 code:#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<string>#include <set>//a&3==a%4using原创 2017-08-11 19:13:06 · 459 阅读 · 0 评论 -
HDU6047(数学题)
给你两个长度为n的数列,a,b; 然后根据下列公式计算an+1,an+2...a2na_{n+1},a_{n+2}...a_{2n},并使他们的和最大,最后输出他们的最大和.ai=max{abi−n,abi−n+1,...ai−1}−2n<i<=2na_i=max\{ a_{b_{i-n}},a_{b_{i-n+1}},...a_{i-1}\}-2\quad n<i<=2n这里区间最大值要用O(1原创 2017-07-27 19:48:26 · 375 阅读 · 0 评论 -
HDU6055(数学题寻找正多边形)
给你n个点,的坐标(xi,yi)(x_i,y_i),求他们能组成的正多边形 数; 因为所有点都是格点,只能是正方形,证明: 除了正方形,其他正多边形的内角都不是π2{π\over 2},所以一定存在图1中AB那样长度为m2+n2−−−−−−−√\sqrt{m^2+n^2}的边,那么在B点,下一个顶点只可能是C或者D, (其实还有横着n,竖着为m的点,但是那样,设那个点为X,∠ABX=π2{π原创 2017-07-27 20:43:58 · 639 阅读 · 0 评论 -
HDU6045(此题有坑,拉低了A率)
输入n,Derek和Alfia的得分,给你两列n个题的答案,问是否矛盾. 坑在代码里 没啥好说的,找出坑来就很水了 code:#include<cstdio>#include<iostream>using namespace std;const int maxn=1e5+10;char a[maxn];char b[maxn];int main(){ int kase;原创 2017-07-27 20:56:20 · 632 阅读 · 0 评论 -
1A - Theatre Square
哇咔咔,终于到了实现梦想的时刻。 CF红名我来了,你别跑。A. Theatre Square time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputTheatre Square in the capital city of原创 2017-12-17 16:26:43 · 399 阅读 · 0 评论