自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACdreamer

欢迎关注知乎:https://www.zhihu.com/people/acdreamers/activities

  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 HDU4394(数论中的广搜)

题目:Digital Square 题意:Given an integer N,you should come up with the minimumnonnegative integer M.M meets the follow condition: M2%10x=N (x=0,1,2,3....)  从低位向高位广搜,如果当前情况满足M^2 % 10^y = N %

2013-05-31 14:33:36 2012

原创 高斯消元基础题

题目:EXTENDED LIGHTS OUT 题意:5*6的一个由灯组成的方阵 操作一个灯 周围的上下左右四个灯会发生相应变化 即由灭变亮 由亮变灭 问如何操作使灯全灭。本题方法:猛戳这里#include #include #include #include using namespace std;const int N=105;int eq

2013-05-31 02:44:29 4074

原创 SPOJ Finding Fractions

题目地址:http://www.spoj.com/problems/FINFRAC/题目大意:给4个整数a,b,c,d,寻找两个整数p,q,使得a/b  连分数解法:设[a/b]表示a/b向下取整如果a/b >= 1,设k = [a/b],可以知道 ( a/b ) - k 如果a/b如果c/d>1,那么p = q = 1如果c/d 欲知详解请猛戳这里

2013-05-30 21:37:18 1452

原创 高斯消元原理

高斯消元法的步骤:设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数与变元数不同)1. 把方程组转换成增广矩阵。2. 利用初等行变换来把增广矩阵转换成行阶梯阵。枚举k从0到equ – 1,当前处理的列为col(初始为0) ,每次找第k行以下(包括第k行),col列中元素绝对值最大的列与第k行交换。如果col列中的元

2013-05-30 17:10:36 4774

原创 HDU4302(map的用法)

题目:Holedox Eating #include #include #include #include #include using namespace std;const int oo=1000000;int main(){ mapmymap; int t,l,n,co,a,b,ca=0; map::iterato

2013-05-30 16:28:11 1616

原创 构造类斐波那契数列矩阵

题目链接题目:给定正整数a,b,n,m,求的值。其中0 以前做过的矩阵连乘啊,就是构造矩阵就可以轻松解决。我们知道0,可以知道后面的那一坨一定是整数,这个公式明显成立。然后像斐波那契数列那样构造矩阵。注意n是从1开始的。#include #include #include #include using namespace std;typedef lo

2013-05-30 13:29:05 4416

原创 关于方程a^x=1(mod m)的最小x解

题目:Description has only two Sentences 题意:输入X,Y,a,其中Y%(X-1)=0,求最小的正整数k,满足Y/(X-1)*(X^k-1)%a=0分析:令m=Y/(X-1),即m(X^k-1)%a=0,对于m,a先求出g=gcd(m,a)然后约去g,即约分后只需(X^k-1)%(a/g)=0即可。设c=a/g   则(X^k-1)

2013-05-29 19:12:58 4718

原创 fibonacci数列的性质(ZOJ3707)

题目:Calculate Prime S 题意:Define S[n] as the number of subsets of {1, 2, ...,n} that contain no consecutive integers. For eachS[n], if for alli (1 ≤ i n) gcd(S[i],S[n]) is 1, we call that S[

2013-05-29 15:56:46 5116

原创 整数Hash的应用

HDU1425 题意:给你n个整数,请按从大到小的顺序输出其中前m大的数。每组测试数据有两行,第一行有两个数n,m(0个各不相同,且都处于区间[-500000,500000]的整数。#include #include #include using namespace std;const int N=1000005;int a[N];i

2013-05-29 13:47:10 2687

原创 HDU4307(最小割)

题目:Matrix 之所以能够用最大流解决这个问题,关键在于最大流可以求解下面这个函数的最小值:接下来就分析一下如何用最大流求解上面这个函数的极值。首先xi一共只有两种选择,那么最终可以按xi的取值将xi划分成两个集合,那么如果xi在值为1的集合里,xj在值为0的集合里,那么就会产生一个代价cij。同时如果xi选择0就会产生一个bi的代价,如果xi选择1就会产生一个ai的代

2013-05-29 12:14:19 1624

原创 UVA10173(求凸包的面积最小外接矩形)

题目:10173 - Smallest Bounding Rectangle 求凸包的最小外接矩形的面积。思路:旋转卡壳给定点集S,求S的最小覆盖矩形最小覆盖矩形的四条边上,其中一条边有至少两个点,其他边上至少有一个点。然后沿着凸包的边旋转,维护矩形另外三条边上的点。#include#include#include#define eps 1e-8

2013-05-16 13:21:20 4371

原创 平面最近点对

题目:Quoit Design /**最近点对问题,时间复杂度为O(n*logn*logn)*/#include #include #include #include #include using namespace std;const double INF = 1e20;const int N = 100005;struct Point

2013-05-16 13:09:40 1430

原创 POJ4449(三维凸包+空间坐标旋转+二维凸包)

题目:Building Design 题意:题目就是给了一个凸多面题。要把这个凸多面体放到地上,一个面要接触到地面。求一种放法,使得最高点最高,最高点相同时使投影面积最小。输出最高点高度H和投影面积S。先三维凸包一下求得所有的三角形表面。然后枚举每一个表面,进行坐标变换,旋转使得这个表面变水平,然后投影求投影面积,算最高点高度。 题目的数据好像没有n==1 ,2

2013-05-16 13:01:45 1713

原创 HDU4082(相似三角形的个数)

题目:Hou Yi's secret #include#include#include#include#includeusing namespace std;const double eps=1e-6;mapmp;struct Node{ int x,y;}node[50];double dis(Node a,Node b){

2013-05-16 12:49:06 1414

原创 HDU3400(计算几何中的三分法利用)

题目:Line belt 题意:就是给你两条线段AB , CD ,一个人在AB上跑速度p, 在CD上跑q,在其他地方跑速度是r。问你从A到D最少的时间是好多。#include#include#include using namespace std;typedef struct{ double x , y ;}point;point a,b,c

2013-05-16 11:57:25 1347

原创 HDU4273(求三维凸包重心到表面的最短距离)

题目:Rescue 题意:求三维凸包重心到表面的最短距离#include#include#include#include#includeusing namespace std;const int MAXN=1050;const double eps=1e-8;struct Point{ double x,y,z; Point(

2013-05-16 11:42:36 1443

原创 HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)

题目:3D Convex Hull 题意:给定空间中的n个点,求这n个点形成的凸包的表面的多边形个数。增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况:1> 在凸包内,则可以跳过2> 在凸包外,找到从这个点可以"看见"的面S(看不看得见可以用法向量,看点是否在面外侧),删除这些面S,然后对于S的每条边E进行判断,看该点还能否看到这些边E的另一侧的面

2013-05-16 02:39:46 2241

原创 ZOJ2112(区间动态求第K大)

题目:Dynamic Rankings 题意:N给定一个数组A[1]~A[N],有M个操作每个操作可以如下Q i j t 输出 A[I]~A[J]之间第t小的数C i t 将A[I]赋值为t#include #include #include #include #include using namespace std;#define N

2013-05-15 16:35:51 2118

原创 HDU1823(二维线段树)

题目:Luck and Love 题意:当操作符为‘I’时,表示有一个MM报名,后面接着一个整数,H表示身高,两个浮点数,A表示活泼度,L表示缘分值。(100当操作符为‘Q’时,后面接着四个浮点数,H1,H2表示身高区间,A1,A2表示活泼度区间,输出符合身高和活泼度要求的MM中的缘分最高值。 (100其实对于二维线段树,可以这样理解:母树保存x轴上面的信息;子树保存当

2013-05-15 16:00:31 1696

原创 动态树模板(HDU4010题)

题目:Query on The Trees #include #include #include #include #include const int maxn=100011;const int INF=0x7fffffff;using namespace std;struct SplayTree{ int val,mn,lazy;

2013-05-13 22:34:16 1612

原创 优先队列

按照优先权的大小出队#include #include using namespace std;priority_queue,greater >Q;/**greater是最小值优先出队,而less是最大值最先出队*/int main(){ int x,n,i; while(cin>>n) { for(i=0;i

2013-05-13 20:13:32 857

原创 Python中的join()函数和split()函数的用法

题目:CFUltra-Fast Mathematician 题意:给两个长度相等的0,1字符串,在相同的位置的两个字符不同就输出1,否则输出0.比如:10101000100101就输出:1110001代码:print ''.join("10"[i==j] for i,j in zip(raw_input(),raw_input()))join()函数

2013-05-13 13:02:26 9234

原创 Python基础语法

Python里面增加了**运算符和//运算符**用于幂的计算,比如计算2的3次方,就直接a=2**3>>> a = 2**3>>> print a8>>> //用于向下取模,主要用于浮点数,比如3//1.7 = 1.0>>> a = 3//1.7>>> print a1.0>>> 数字类型的内建函数转换函数:将其他类型的数字转换为相应类型

2013-05-11 21:02:49 1487

转载 像烟灰一样松散(毕淑敏)

近年结识了一位警察朋友,好枪法。不单单在射击场上百发百中,更在解救人质的现场,次次百步穿杨。当然了,这个“杨”不是杨树的杨,而是匪徒的代称。    我向他请教射击的要领。他说,很简单,就是极端的平静。我说这个要领所有打枪的人都知道,可是做不到。他说,记住,你要像烟灰一样松散。只有放松,全部潜在的能量才会释放出来,协同你达到完美。    他的话我似懂非懂,但从此我开始注意以前

2013-05-11 19:32:25 1917

原创 Spaly_Tree 模版

/******************************************数据结构:Splay_Tree,伸展树;性质:伸展树是二叉查找树的一种改进;与二叉查找树一样,伸展树也具有有序性;即伸展树中的每一个节点x都满足:该节点左子树中的每一个元素都小于x;而其右子树中的每一个元素都大于x;与普通二叉查找树不同的是,伸展树可以自我调整;特点

2013-05-09 20:01:42 1225

原创 HDU4006(The kth great number)

两种方法做:优先队列和SBT。先说说SBT吧。。。。/*************************************************题目大意:针对每次查询,输出第K大数;算法思想:(1)根据题意可知,只需保留前K个大数,并且按降序排列;也就是说每加入一个数就找到这个数的位置;然后将大于K个元素之外的数删除;利用优先级队列就可以很好的做

2013-05-09 19:55:42 793

原创 BST(Binary Search Tree 二叉查找树模版)

/******************************************数据结构:BST(Binary Search Tree),二叉查找树;性质:若结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若结点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;该结点的左、右子树也分别为二叉查找树;遍历:对于一个已知的二叉查找树,

2013-05-09 19:47:26 1146

原创 SBT模版(Size Balanced Tree)

关于SBT的介绍及学习,请戳这里。 SBT模版:/*************************************************数据结构:SBT(Size Balanced Tree),又称傻逼树;数据域:值域key,左孩子left,右孩子right,保持平衡的size;性质:每棵子树的大小不小于其兄弟的子树大小;插入:插

2013-05-09 19:42:21 1236 1

原创 C++ STL的妙用

题目:Subsegments 题意:输入一个长度为n的整数数组,然后再输入m,然后求从第一个数开始找连续的m个数中的最大的没有重复的数,然后又从第二个数开始。。。。。。如果不存在的情况就输出Nothing比如输入为:5 31 2 2 3 3那么就有1 2 22 2 32 3 3这3种情况,它们的最大的没有重复的数字分别是1,3,2#include

2013-05-09 18:07:04 1267

原创 SGU247(排列组合与大数运算)

题目:Difficult Choice 题目分析以及公式推导: import java.io.*;import java.util.*;import java.math.BigInteger;public class Solution{ public static BigInteger fac[]=new BigInteger[2013];

2013-05-09 17:01:59 1560

原创 面向对象编程

1.第一个HelloWorldclass MyClass: def tell(self): print 'HelloWorld!'Test = MyClass()Test.tell()2.特殊函数:class MyClass: def tell(self): print('This is MyClass')

2013-05-09 11:41:30 1075

原创 求n!,C(n,m)和A(n,m)最后的非零位。

求n!,C(n,m),A(n,m)最后的非零位。 先说说怎样求n!最后的非零位吧!比如找10!最后的非零位,由于质因数2和5的组合之后末尾会产生0,所以我们先把2,5的质因子全部去掉,由于2的数目要比5多,所以我们要在最后考虑多余的2对末尾的影响。比如:1*2*3*4*5*6*7*8*9*10去掉2,5的因子后就是:1*1*3*1*1*3*7*1*9*1,由于去

2013-05-08 21:10:07 1581

原创 map()和zip()操作

如果要将一个string list转换成int list (list里每个string都转成int),比如:['0','1','2'] -> [0,1,2]可以使用:[int(x) for x in list]或者使用map操作: map(func, list) 对list里的每个元素apply func.map(int, list)假设有一个2维数组(用list实现):

2013-05-07 21:26:59 1689

原创 input()与raw_input()

raw_input() 与 input()这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。举两个小例子。>>> raw_input_A = raw_input("raw_input: ") raw_input: abc >>> input_A = input("Input: ") Input: abc Traceb

2013-05-07 21:01:31 2937 1

原创 Pythont特殊语法filter,map,reduce,apply

首先介绍一下匿名函数lambda lambda的使用方法如下:lambda [args1[,args2,args3,...,argsn]] : expression 例如:>>> add = lambda x,y : x + y>>> add(1,2)3接下来分别介绍filter,map和reduce。1、filter(bool_func,seq):此函数的功能相当

2013-05-07 20:25:07 1395

原创 POJ2527(两多项式取余)

题目:Polynomial Remains #include using namespace std;const int N = 10005;int n,k,i;int val[N];int main(){ while(cin>>n>>k) { if(n==-1&&k==-1) break; for

2013-05-07 15:14:19 1963 1

原创 HDU4475(找规律+预处理加速)

题目:Downward paths 设size=i,答案是ai;       a1=2=1+1;       a2=8=2+2*2+2;       a3=48=8+8*2+8*2+8;       a4=384 =48+48*2+48*2+48*2+48;       ......很明显规律:an=an-1+2*(n-1)an-1+an-1=2*n*an-1;

2013-05-05 21:29:28 1305

原创 大数开方(C++版)

题目:1153. Supercomputer题目大意:N=x*(x+1)/2,给你N (N 600),输出x分析:求sqrt(2*N)即可#include #include #include #include #include using namespace std;#define MAXN 20000int big(char s1[],char s

2013-05-04 21:18:28 4496

原创 POJ1220(高精度进制转换)

题目:NUMBER BASE CONVERSION 就是后面的数字以a进制的形式给出,要求转化为b进制输出。#include #include #include #define MAXSIZE 60000char in[MAXSIZE];int oldbase,newbase;int a[MAXSIZE],b[MAXSIZE],r[MAXSIZE];

2013-05-04 20:37:00 1845

原创 原根

定理:如果p为素数,那么素数p一定存在原根,并且p的原根的个数为phi(p-1).设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1那么g可以称为是P的一个原根,归根到底就是g^(P-1) = 1 (mod P)当且仅当指数为P-1的时候成立.(这里P是素数).求原根目前的做法只

2013-05-04 12:14:39 11632 2

Fibonacci数列与矩阵连乘

适合ACM-ICPC竞赛中关于Fibonacci数列和矩阵连乘的学习

2014-01-19

ACM数论概论好书

本书是对于ACM编程数论的好书,有很大帮助哦!

2013-05-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除