数学
bryant03
这个作者很懒,什么都没留下…
展开
-
zoj_3882_7/27浙大月赛B
这道题不得不说是一道水题,只要你看过刘汝佳的白书的话,相信秒杀还是没问题的,题意是A和B两个人玩游戏,有1~n一堆数,每个人轮流从中取走一个数,并把他和他的所有的约数擦去。擦去最后一个数的人赢,A先开始,问谁会赢。 分析:本题的结论有些出乎意料,除了n=0是先手必败之外,其他的情况都是先手必胜。证明如下。 如果后手能赢,也就是后手有必胜策略,使得先手无论去哪第一次取哪一个数,后手都能获得最后的胜原创 2015-07-27 23:14:48 · 663 阅读 · 0 评论 -
poj_1753_高斯消元
开心,总算过了,对于高斯消元的理解更深一步,这道题的重点在于,如果用高斯消元的话,最后一行是要枚举的,总共16种情况,因为不知道怎么枚举,当时卡了好久,其实在线性方程组中,我们可以当做缺少了四个方程,所以我们的过程就是枚举最后四个方程,然后一步一步往回带入。其中要注意一点,就是最后的结果可以全是白面,也可以全是黑面,看了很多博客,说的解法都很麻烦,其实大可以不必,只要a数组加两列就行,将枚举的结果原创 2015-07-21 20:29:38 · 467 阅读 · 0 评论 -
poj_2773
题目的愿意很简单,给你一个n,求在升序排列的情况下,第k个与之相互素的数。 解法:首先我们要知道gcd(b×t+a,b)=gcd(a,b),那么接下来就很简单了,所有与之互素的数都是以phi(n),为周期的,所以暴力求解即可。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include原创 2015-08-03 00:20:02 · 939 阅读 · 0 评论 -
poj_2480
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x):(y))#define MIN(x,y) (原创 2015-08-01 00:03:16 · 696 阅读 · 0 评论 -
poj_2407_欧拉函数
水,裸欧拉函数。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <cmath>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x原创 2015-08-01 12:14:57 · 744 阅读 · 0 评论 -
poj_3090_欧拉函数
水,只需要知道(X,Y)点为端点对应的线上的点的个数是gcd(x,y)+1(这里包含了两个端点),知道之后就欧拉函数走起#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace原创 2015-08-01 13:50:56 · 679 阅读 · 0 评论 -
poj_2478_欧拉函数
裸,欧拉打表水过#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>using namespace std;#define MAX(x,y) (((x)>(y))?(x原创 2015-08-01 12:32:43 · 677 阅读 · 0 评论 -
poj_1284_原根
一开始看题的时候第一想法就是暴力,但是无奈数据量有点大,看了题解之后才知道原来牵扯到数论上的一个叫做原根的东西,这个题的题意就是,给你一个奇素数,问题他的原根有多少,根据初等数论上所说,此时牵扯到了三个定理。 1)所有的单素数都是有原根的 2)一个数n有原根,那么他有phi(phi(n))个模n不同余的原根(n是否素数都可用) 3)一个素数有原根,则有phi(n-1)个原根 其中3是由1,2原创 2015-08-01 11:55:20 · 705 阅读 · 0 评论 -
poj_1222_高斯消元
第一次学习使用高斯消元,将灯板化为线性方程组,进行求解/*########################################################################## File Name: poj_1222.cpp# Author: CaoLei# Created Time: 2015/7/20 15:48:04####################原创 2015-07-20 17:27:10 · 518 阅读 · 0 评论 -
hdu_2817_快速幂
水~#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x):(y))#define MIN(x,y)原创 2015-08-02 00:37:50 · 758 阅读 · 0 评论 -
poj_1681_高斯消元
这道题和之前的把那一道1222非常相似,只不过一定要注意一下对于无解的判断。/*########################################################################## File Name: poj_1681.cpp# Author: CaoLei# Created Time: 2015/7/20 18:33:08#########原创 2015-07-20 21:41:36 · 692 阅读 · 0 评论 -
hdu_3547
发现最近题目老是看不下去呀,英语要加强了,六级还是抓紧考过吧,丢人了。这道题目的意思是,给你一个正方体,然后让你正方形的八个顶点涂色,看看有多少种经过翻转后也不相同的情况。 解析:肯定还是要用到polya定理了,这里的关键在与分析有多少种置换的状态: 1.绕着相互对立的两个面旋转,有90度,180度,270度,所以总共有3*3=9种情况。 2.绕着相互对立的两个边旋转,有180度这样,所以总共原创 2015-08-26 19:54:16 · 907 阅读 · 0 评论 -
poj_2154
polya+euler+素数优化=1200ms+/*ID: CaoLeiPROG: poj_2154.cppLANG: C++*/#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#includ原创 2015-08-26 14:32:06 · 2766 阅读 · 8 评论 -
组合数重点整理
总结下最近刷过的关于组合数的题目,以供以后复习参考。 首先要介绍的就是lucas定理,这也是组合数中重点中的重点。 同时,因为我们也经常要遇到关于取模的运算,所以关于逆元的概念也必不可少。 好了,接下来就是通过解决实际问题,来实践了。 1.hdu3037 解析:通过隔板法,求C(n+m , m )% p即可,这里我们就需要用到lucas定理了,注意,我们一般会预处理一些所需原创 2015-08-25 00:20:47 · 992 阅读 · 0 评论 -
Hdu_5153_容斥原理
挺忙的,改天回来再写题解#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>#include <vector>using namespace std;#define原创 2016-04-20 23:11:01 · 444 阅读 · 0 评论