ACM 数学
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
hdu5901 Count primes
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5901 题意:让你求1到n里有多少个素数 解析:多校的时候,分段打表写的,等了一个多小时……#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <string>#include原创 2017-02-16 21:46:28 · 2397 阅读 · 1 评论 -
CodeForces 820B Mister B and Angle in Polygon
题目链接:http://codeforces.com/contest/820/problem/B 题意:有个正凸多边形,现在告诉你一个角度a,让你从多边形里面找一个角,使得尽可能的接近a,输出任意一组顶点编号 解析:如果把多边形外接圆,相当于有n-2个圆周角,固定一条边,移动另一条边,每次增长的度数就是圆周角的大小,维护一下最小值就直接出结果了#include <bits/stdc++.h>u原创 2017-07-11 00:00:27 · 952 阅读 · 0 评论 -
CodeForces 822A I'm bored with life
题目链接:http://codeforces.com/contest/822/problem/A 题意:给你两个数a,b,让你求gcd(a!,b!) 解析:很明显gcd(a!,b!)=min(a,b)!,而且题目说明了min(a,b)<=12,所以直接去最小值,然后求一下阶乘就可以了#include <bits/stdc++.h>using namespace std;int main(vo原创 2017-07-08 10:40:45 · 1029 阅读 · 0 评论 -
CodeForces 834A The Useless Toy
题目链接:http://codeforces.com/contest/834/problem/A 题意:有v,<,^,>,四个符号,分别由v顺时针旋转90度依次得到,现在告诉你其实符号,和结束符号,需要经过n次选择,问你是顺时针旋转获得,还是逆时针旋转获得,亦或是顺时针或逆时针旋转都能获得 解析:反正是一个为4的循环节,取一下模就出来了#include <bits/stdc++.h>using原创 2017-07-31 16:30:41 · 713 阅读 · 0 评论 -
CodeForces 834C The Meaningless Game
题目链接:http://codeforces.com/contest/834/problem/C 题意:一个人和他的一只狗一起玩游戏,游戏n局,游戏规则如下,每轮两人选择一个数字k,先喊出来的那个就在原有的积分乘上k^2,另一个则乘上k,最后,那个人忘了游戏谁赢了,只是记得每局的两人最后得分,但又不确定这个得分是否正确,让你来判断,这些给出的得分是否合法 解析:首先一个乘k^2,一个乘k,那么g原创 2017-07-31 17:13:18 · 709 阅读 · 0 评论 -
hdu6050 Funny Function【打表+找规律+矩阵快速幂】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6050 题意:看公式,求fm,1 解析:打表找规律 直接找答案的规律,根据题目的公式来推,太难了,直接打个表看规律,好看点 先处理处第一行(用矩阵快速幂来做),然后分奇偶来找规律,找规律是玄学问题,难以解释。。。(详情见代码) 打表#include <bits/stdc++.h>using n原创 2017-07-27 21:11:23 · 766 阅读 · 0 评论 -
hdu6033 Add More Zero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033 题意:让你求2^m-1次方里面是几位数,即对2^m-1取以10为底的对数 解析:由于不减一也不可能出现增加位数的情况,所以可以直接对2^m次方求对数,换底公式得ans = m*log(2)/log(10)#include <bits/stdc++.h>using namespace std;原创 2017-07-27 21:40:54 · 337 阅读 · 0 评论 -
hdu6108 小C的倍数问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6108 题意:中文题 解析:首先你要明白为什么3的倍数满足,各位数求和也为3的倍数,假设有一个三的倍数是abc,那么其实这个数用进制展开后,为 102*a+10*b+c = (102-1)*a+(10-1)*b+(a+b+c) 由于前两项都是3的倍数,所以需要a+b+c也为3的倍数 那么对于在p原创 2017-08-20 13:18:08 · 352 阅读 · 0 评论 -
hdu6114 Chess
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6114 题意:中文题 解析:由于题目限制的比较死,上一行的棋子必须在这一行的左边,那么对于一个正方形的棋盘来说,方法数肯定是1的,如果是一个长方形棋盘n*m来说,那就相当于从max(m,n)中选min(m,n)出来,每一列放一个,所以答案就是组合数C(max(n,m),min(n,m)),再加上一个逆原创 2017-08-20 18:51:44 · 303 阅读 · 0 评论 -
hdu6044 Limited Permutation【读入优化+dfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6044 题意:有长度为n的序列,分别表示l[i]和r[i],然后让你构造一个a序列,a[i]满足在[l[i],r[i]]区间里面,a[i]为最小值,满足这样条件的序列有多少种 解析:首先根据题面的限定,肯定存在一个区间i是[1,n],对于这个区间,可以说第i个值已经确定了,因为这个区间是当前的整个区间原创 2017-08-27 10:32:53 · 403 阅读 · 0 评论 -
hdu6063 RXD and math
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6063 题意:没错就是题面那个公式 解析:n和k都好大啊,我坚信他是规律题,推了几组发现真的是规律nk,直接快速幂就搞定了,不过有一个问题是,n很大,有可能直接乘一下就爆long long了,所以要先对n取模一下#include <bits/stdc++.h>using namespace std;原创 2017-08-27 14:48:10 · 297 阅读 · 0 评论 -
hdu6075 Questionnaire
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6075 题意:给你n个数,让你找一个k和d,使得这个序列里所有的元素%k等于d的个数大于不等于d的个数 解析:其实可以把d限定了,比如k如果取2,那么d不是1就是0#include <bits/stdc++.h>using namespace std;int main(void){ in原创 2017-08-27 15:21:03 · 307 阅读 · 0 评论 -
hdu6198 number number number【找规律+矩阵快速幂】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给你一段斐波那契数列,有个关于good number的定义,就是给你一个k,如果对于一个n,能由k项斐波那契数相加来表示,那么这个数就叫good number,否则就是bad number,现在输入k,让你求最小的bad number 解析:这种题型,看着就像递推题,手写了前几项,然后和原创 2017-09-11 23:56:58 · 670 阅读 · 0 评论 -
CodeForces 876B Divisiblity of Differences
题目链接:http://codeforces.com/contest/876/problem/B 题意:给你一个长度为n的序列,让你从这n个数里面,选k个数出来,这k个数中任意两个数的差,模m等于零 解析:其实一开始没思路的,后面发现如果两个数%一个数的结果是一样的,那么相减后的结果%这个数就等于零了,那么我直接处理处每个数%m的结果,加到一个vector里,然后去判断有没有一个vector的s原创 2017-10-17 16:24:50 · 549 阅读 · 0 评论 -
CodeForces 869B The Eternal Immortality
题目链接:题目链接:http://codeforces.com/contest/869/problem/B 题意:给你一个a,b,让你求b!/a!结果的个位数的值 解析:很明显的一点是,如果一个数乘0,那么个位数一定是0,那么你只需要判断这些连乘的数的个数是否大于10个,如果大于10个,直接输出0就好了,如果小于10个,那你自己算一下就可以了。注意a,b相等需要特判一下#include <bit原创 2017-10-09 11:21:11 · 526 阅读 · 0 评论 -
CodeForces 869C The Intriguing Obsession【排列组合】
题目链接:http://codeforces.com/contest/869/problem/C 题意:有3种点,数量分别为a,b,c,让你对这3种点相互连线,使得相同种类点之间的最短距离至少为3,或者不连通,问你总共有多少种方法 解析:由于最短距离至少为3,那么内部肯定是不能相互连线的,那么需要考虑的就是和其他种类连,那这样的情况下,无论你怎么连,只会有要么不连通,要么最短距离只能为3,所以你原创 2017-10-09 11:51:34 · 782 阅读 · 0 评论 -
CodeForces 867B Save the problem!
题目链接:http://codeforces.com/contest/867/problem/B 题意:有一个数n,可以被若干个数组合合成,且组合的方法数为x,现在告诉你x,让你给出n和那若干个数 解析:之所以有那么多种方法,是因为有些数字是可以通过倍数关系来相互替代,然后1和2是可以组成全部数字的,而且两个1可以代替一个2,所以随着数字的增大,方法数也一定是增大的,所以找一下规律,逆推一下即可原创 2017-10-11 22:01:00 · 457 阅读 · 0 评论 -
hdu2817 A sequence of numbers
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817 题意:给你一个数列的前三项,让你求第k项,这个数列可能是等差也可能是等比 解析:直接判断等差还是等比,等比用快速幂,等差就直接套公式a0+(n-1)*d#include <bits/stdc++.h>using namespace std;const int mod = 200907;l原创 2017-06-06 11:30:45 · 518 阅读 · 0 评论 -
hdu1757 A Simple Math Problem【矩阵快速幂】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 题意:题目有一个表达式f(x),让你求他的第k项,即f(k)%m 解析:应该就是一个矩阵快速幂了,构造一个矩阵,草稿纸上算一下不难得出这个矩阵 [0,1,0,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0,0,0 0,0,0,1,0,0,0,0,0,0 0,0,0,0原创 2017-06-05 13:37:31 · 321 阅读 · 0 评论 -
CodeForces 755APolandBall and Hypothesis
题目链接:http://codeforces.com/contest/755/problem/A 题意:给你一个整数n,让你求一个m,使得n*m+1不是素数 解析:由于题目有说明,所以可以直接暴力的把m求出来,但是有更简单的办法,完全平方式是n*n+2*n+1,所以直接输出n+2就好了,但是他说了答案不能超过1e3,所以要稍微处理一下#include <bits/stdc++.h>using原创 2017-05-05 19:32:57 · 775 阅读 · 0 评论 -
Gym - 101257D !Hasan 【二分 | 推公式】
题目链接:https://vjudge.net/problem/Gym-101257D 题意:总共有n台电脑,Moath找一台电脑需要x分钟,Saif找一台电脑需要y分钟,问你找n台电脑需要多少分钟 解析:在0~2*1e18里面二分答案,还有一种方法就是推公式#include <algorithm>#include <cstdio>#include <cstring>#include <i原创 2017-02-25 18:25:01 · 351 阅读 · 0 评论 -
Gym-100502D Dice Game
题目链接:https://vjudge.net/problem/Gym-100502D 题意:输入有两行,每行四个数 解析:比赛的时候没有怎么看题,直接看的样例,以为是四个数字相加比大小然后输出结果,不过比完赛以后,听队友说好像是求期望,不过期望的形式和四个数相加没区别#include <cstdio>#include <cstring>#include <algorithm>#inclu原创 2017-03-05 18:16:20 · 783 阅读 · 0 评论 -
Gym - 101243A Fried Fish【数学】
题目链接:https://vjudge.net/problem/Gym-101243A 题意:给你n条鱼,你的锅每分钟只能煎k条鱼,鱼要煎两面,问你最少几分钟煎完所有鱼 解析:数学题,记得特判就好#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <algorithm>#incl原创 2017-03-10 13:23:54 · 525 阅读 · 0 评论 -
Gym - 101243B Hanoi tower【找规律】
题目链接:https://vjudge.net/problem/Gym-101243B 题意:也就是汉诺塔,给你n个盘子,和3根柱子,问你移动到第几步的时候是三个柱子上的盘子数量都相等的时候 解析:按照题目给你的那个程序把数据算出来,然后找规律即可(高精度) 按照题意翻译的程序:#include <cstdio>#include <cstring>#include <algorithm>原创 2017-03-10 13:35:38 · 965 阅读 · 0 评论 -
Gym - 101243D Weather Station【数学】
题目链接:https://vjudge.net/problem/Gym-101243D 题意:给你一段字符串,这段字符串有各种风向组成(N,NE,E,SE,S,SW,W,NW),让你判断这串字符串有几种组合可能 解析:遇到N和S的时候,判断下一个字符是否是W或E,是的话答案就乘二,其实也就是选或不选的情况#include <iostream>#include <cstring>#includ原创 2017-03-10 13:39:11 · 673 阅读 · 0 评论 -
Gym - 101243G Sphenic numbers【数学】
题目链接:https://vjudge.net/problem/Gym-101243G 题意:给你一个数字,让你判断这个数字是否有3个不相等的素数相乘而组成 解析:打一个素数表,然后就扫一遍判断即可#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<原创 2017-03-10 13:43:56 · 483 阅读 · 0 评论 -
Gym - 101243H Non-random numbers【构造+数学】
题目链接:https://vjudge.net/problem/Gym-101243H 题意:给你一个数n,让你求有多少个不同的n位数,而且从左往右数第i位不能为i,其实不能有前导零 解析:其实就是个排列组合的问题吧,第一位只能放8个数,第二位一直到第9位能放9位数,其他可以放10位数,直接输出即可#include <iostream>#include <cstring>#include <原创 2017-03-10 13:47:23 · 595 阅读 · 0 评论 -
CodeForces 765D Artsem and Saunders
题目链接:http://codeforces.com/contest/765/problem/D 题意:有这么一个函数f:n->n,问你是否存在g:n->m,和h:m->n,且满足g(h(x)) = x,h(g(x)) = f(x),现告诉你n和f(1)到f(n),问你是否存在,若不存在则输出-1,若存在输出m,g(1)到g(n)和h(1)到h(m) 解析: 因为g(h(x)) = x,h(g原创 2017-03-27 19:54:16 · 341 阅读 · 0 评论 -
CodeForces 785D Anton and School - 2
题目链接:http://codeforces.com/contest/785/problem/D 题意:给你一个字符串只包含’(‘和’)’,让你重新组成一个字符串,这个字符串的左边必须全部为)右边必须全部为(,问你有多少种这样的字符串 解析:先前缀和的方式处理出到第i个字符位置他前面有多少个’(‘,他后面有多少个’)’,处理好以后,剩下的就是枚举位置i,然后组合数运算#include <cstd原创 2017-03-20 23:32:01 · 409 阅读 · 0 评论 -
CodeForces 779A Pupils Redistribution
题目链接:http://codeforces.com/contest/779/problem/A 题意:给你两个长度为n的序列,序列里的元素1<=a[i]<=5,现让你交换两个序列的元素,使得每个序列的每个元素值的个数相等,问你最少交换几次 解析:首先每个元素出现的次数必须是偶数,如果不是则输出-1,接着求每个元素在自己序列出现的个数,最少交换次数则为,每个元素出现个数之差除2,在求和除2#in原创 2017-03-14 13:32:15 · 422 阅读 · 0 评论 -
Gym - 100623D Deposits
题目链接:https://vjudge.net/problem/Gym-100623D 题意:给你n个数a[i],和m个数b[i],问你有几对数(a[i]能整除b[i])的 解析:我是直接把1e6里面,各个数的倍数都处理出来,直接加就好了(不过不明白为什么没有T#include <iostream>#include <cstdio>#include <algorithm>#include原创 2017-03-31 10:32:30 · 487 阅读 · 0 评论 -
CodeForces 761A Dasha and Stairs【水题】
题目链接:http://codeforces.com/contest/761/problem/A 题意:输入两个整数a,b,分别表示偶数的个数和奇数的个数,问你是否存在一个区间使得a,b合法 解析:首先abs(a-b)一定是小于等于1的,有一个坑点就是a和b同时为零的情况#include <iostream>#include <cstdio>#include <algorithm>#inc原创 2017-04-03 11:26:59 · 618 阅读 · 0 评论 -
CodeForces 760A Petr and a calendar
题目链接:http://codeforces.com/contest/760/problem/A 题意:告诉你现在是几月,并告诉你这月的第一天是几号现在问你这个月的日历有几列(假设都是非闰年) 解析:最少的列数肯定是 该月的天数/7,然后剩下的补就好,二月要特殊考虑#include <iostream>#include <cstdio>#include <algorithm>#inclu原创 2017-04-04 21:33:58 · 422 阅读 · 0 评论 -
CodeForces 797A k-Factorization
题目链接:http://codeforces.com/contest/797/problem/A 题意:给你两个整数n,k,让你输出一个长度为k的序列a,所有的a[i]相乘等于n,并且a[i]>1 解析:先打个素数表,然后能拆尽量拆,拆下k-1个,剩下的是拆完以后的n#include <bits/stdc++.h>using namespace std;const int maxn = 1e原创 2017-05-04 14:59:49 · 715 阅读 · 0 评论 -
CodeForces 805C Find Amir
题目链接:http://codeforces.com/contest/805/problem/C 题意:有n个学校,学校的编号是从1到n,从学校i到学校j的花费是(i+j)%(n+1),让你求遍历完所有学校的最小花费 解析:你会发现头尾相加就会使得他等于n+1的,那么他的遍历顺序应该是1->n->2->(n-1)->3->(n-2)……以此类推下去,就会发现最终的总花费就是(n-1)/2#inc原创 2017-05-05 09:28:37 · 1384 阅读 · 0 评论 -
CodeForces 762A k-th divisor
题目链接:http://codeforces.com/contest/762/problem/A 题意:给你一个整数n,让你求他的第k个因子(从小往大数) 解析:我是直接暴力把他的所有因子处理出来,然后直接输出答案#include <bits/stdc++.h>using namespace std;const int maxn = 3e7+100;long long a[maxn];i原创 2017-05-05 18:53:12 · 798 阅读 · 0 评论 -
CodeForces 872C Maximum splitting
题目链接:http://codeforces.com/contest/872/problem/C 题意:给你一个数n,问你他最多能划分为几种几个合数的和 解析:打个表,找找规律。。。#include <bits/stdc++.h>using namespace std;int main(void){ int q,n; scanf("%d",&q); while(q-原创 2017-10-17 10:56:36 · 394 阅读 · 0 评论