摘要: 1 /** 2 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 3 即求 a1,a2,a3,。。。。an 的最大公约数为1 , a1,a2....an 可重复 4 原理 : 容斥原理 所有的 排序即 m^n ——不符合的情况 ,即为... 阅读全文
posted @ 2014-05-12 21:40 夜晓楼 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 题意: 给定一序列,置换k次之后 输出其状态 3 置换: 考察循环节长度, 4 思路: 分别求出每个元素的循环节的大小,用k 模其大小,大的k次之后的位置, 输出即可 5 **/ 6 7 #include 8 #include 9 #include 10 using nam... 阅读全文
posted @ 2014-05-12 21:39 夜晓楼 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 稳定婚姻:男生不停的求婚,女生不停地拒绝 3 **/ 4 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define maxn 4011 int pref[maxn][... 阅读全文
posted @ 2014-05-12 21:37 夜晓楼 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 给定一定范围求其内的素数 3 4 注意: 5 **/ 6 7 #include 8 #include 9 #include 10 using namespace std;11 #define maxn 100000012 long long prime[500000];1... 阅读全文
posted @ 2014-05-12 21:35 夜晓楼 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 1 poj 3270 置换的应用 黑书原题P248 2 /** 3 题意: 给定序列, 将其按升序排列, 每次交换的代价是两个数之和, 问代价最小是多少 4 思路:1、对于同一个循环节之内的,肯定是最小的与别的交换代价最小 5 2、 对于整个序列... 阅读全文
posted @ 2014-05-12 21:34 夜晓楼 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 大意: 给定小数(p/q),求其循环节的大小和循环节开始的位置 3 解法: 若出现循环 ai*2^m= aj%p; 4 即 2^m %p =1 5 若2与p 互素,则可由欧拉函数的, 6 ... 阅读全文
posted @ 2014-05-12 21:33 夜晓楼 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 using namespace std; 4 5 int f[33][33]; 6 void init(){ 7 f[0][0] =1; 8 for(int i=1;i'1'){23 for(int j=... 阅读全文
posted @ 2014-05-12 21:32 夜晓楼 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 大意: 有连续的n天,每一天有一定的花费,将其分成m份,每一份占一天或者连续的几天,求这m份中的最大值 3 思路: 二分其最大上限,看在此最大上线,能分成多少份,若大于m份,说明上限过小,需要扩大上限 4 若小于m份,则说明,下限过大,需要缩小上限。 5 **... 阅读全文
posted @ 2014-05-12 21:31 夜晓楼 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 大意:给定n个点,删除其中的m个点,其中两点之间距离最小的最大值 3 思路: 二分最小值的最大值---〉t,若有距离小于t,则可以将前面的节点删除;若节点大于t,则继续往下查看 4 若删除的节点大于m,说明t,过于大,需要减小;若删除的节点小于m说明t过于小了,... 阅读全文
posted @ 2014-05-12 21:30 夜晓楼 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 注意: 千万得小心。。就因为一个分号,调了一个晚上。。。 3 **/ 4 #include 5 #include 6 using namespace std; 7 struct point { 8 int x,y; 9 }; 10 11 struct... 阅读全文
posted @ 2014-05-12 21:25 夜晓楼 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 struct point { 8 double x,y; 9 };10 point be[100005],en[100... 阅读全文
posted @ 2014-05-12 21:24 夜晓楼 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 判断直线位置关系 3 **/ 4 #include 5 #include 6 #include 7 using namespace std; 8 struct point { 9 double x,y;10 point(double x=0,double y=... 阅读全文
posted @ 2014-05-12 21:22 夜晓楼 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 大意:是否存在一条直线,使所有线段在直线上的投影至少交与一点 思路:转换为是否存在一条直线与所有的线段相交,做这条直线的垂线,那么垂线即为所求 3 **/ 4 #include 5 #include 6 using namespace std; 7 int n; 8 const double... 阅读全文
posted @ 2014-05-12 21:21 夜晓楼 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 struct point{ 8 int x,y; 9 };10 11 struct line{12 point a,b;13 };14... 阅读全文
posted @ 2014-05-12 21:20 夜晓楼 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 Accepted 8508K 391MS C++ 2004B 2 相比下边,,优化太多太多了。。。 3 /** 4 baby-step-giant-step 因为数据量太大,,自己写hash 5 6 **/ 7 #include 8 #include... 阅读全文
posted @ 2014-05-12 21:19 夜晓楼 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1 Accepted 406MS 8576K 2379 B C++/** 2 这里加了一点限制,,大体还是一样的,, 3 4 **/ 5 #include 6 #include 7 #include 8 #include 9 #include 10... 阅读全文
posted @ 2014-05-12 21:17 夜晓楼 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1 Accepted 8508K 579MS C++ 2237B/** 2 hash的强大,,还是高次方程,不过要求n不一定是素数 3 **/ 4 #include 5 #include 6 #include 7 #include 8 #inclu... 阅读全文
posted @ 2014-05-12 21:16 夜晓楼 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 大意:给定一个建筑--水平放置,给定n个障碍物, 给定一条街道,从街道上能看到整个建筑的最长的连续的区域 3 思路: 分别确定每一个障碍物所确立的盲区,即----建筑物的终点与障碍物的起点的连线,建筑物的起点与障碍物的终点的连线。。这段区域即为盲区,,,有多个盲区,需要去重。... 阅读全文
posted @ 2014-05-12 21:15 夜晓楼 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 大意:给定点,求将这些点包起来的,最小周长,,形成的凸包与点之间的需要有一定的距离l; 3 思路: 1、求出凸包 4 2、求凸包中的长度+ 弧形的长度----〉即一个圆的周长: 因为形成的多边形的内角是360 所以因为距离l所形成的弧的角度相加即为360.。也就... 阅读全文
posted @ 2014-05-12 21:12 夜晓楼 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 极角排序输出,,, 3 主要atan2(y,x) 容易失精度,,用 4 bool cmp(point a,point b){ 5 if(cross(a-tmp,b-tmp)>0) 6 return 1; 7 if(cross(a-tmp,b-tmp)... 阅读全文
posted @ 2014-05-12 21:08 夜晓楼 阅读(140) 评论(0) 推荐(0) 编辑