- 博客(228)
- 资源 (92)
- 收藏
- 关注
原创 http://acm.fzu.edu.cn/problem.php?pid=1564 C(n,k)和素数P的问题
<br />/*C(n,k)和素数P的问题公式:求C(n,k)中素因子P的个数:1.把n转化为P进制,并记它每个位上的和为S12.把n-k,k做同样的处理,得到S2,S3则C(n,k)中素因子P的个数:(S2+S3-S1)/(P-1)*/#include <iostream>#include <cstdio>#include <cstring>#include <bitset>#include <cmath>using namespace std;
2010-10-02 20:34:00
1090
转载 【转】 计算几何中的精度问题
<br />转载自 xh176233756最终编辑 xh176233756<br />计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了。精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,简直“画龙点睛”。这些年的题目基本是朝着越来越不卡精度的方向发展了,但是也不乏一些%^&%题#$%$^,另外有些常识不管题目卡不卡,都是应该知道的。今天我就开膛回顾下见过且还有印象的精度问题,由于本人见识和记忆均有限,望各位大神瞄过后不吝补充。另外,为了弥补我匮乏的文思,
2010-10-02 18:31:00
1078
原创 http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理
<br />/*Lucas theoremm = mk * p^k + mk-1 * p^k-1 +... +m1 * p + m0;n = nk * p^k + nk-1 * p^k-1 +... + n1 * p + n0;C(m,n)=C(mk,nk)*C(mk-1,nk-1)*...*C(m1,n1)*C(m0,n0);【题目大意】求C(n+m,n) % p的值。保证p是素数。*/#include <iostream>#include <cstdio>#d
2010-10-02 17:00:00
947
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=2305 大数的b进制数 取模
<br />import java.io.*;import java.util.*;import java.math.*;public class Mainpku2305 { static Scanner in=new Scanner(new BufferedReader(new InputStreamReader(System.in))); public static void main(String[] args){ int b; while(in.hasNext()){
2010-09-18 22:26:00
1025
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=1131 八进小数转十进制小数
<br />import java.io.*;import java.util.*;import java.math.*;public class Main { static Scanner in=new Scanner(new BufferedReader(new InputStreamReader(System.in))); public static void main(String[] args){ String tep; BigDecimal one = Bi
2010-09-18 21:29:00
697
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2441 犀利的证明
<br />/*令F(1)=1,F(N)=∑F(d)%2 (d|N 且d!=N)F(N)=1,则N在数组里。(除了1以外)1.对于N=P^a F(P)=F(1)=1,F(P*P)=F(1)+F(P)=0,F(P^a)=F(1)+F(P)+……F(P^(a-1))=F(1)+F(P)=0;2.对于N=P^a Q^b a=1时 b=1 F(N)=F(1)+F(P)+F(Q)=1 b=2 F(N)=F(1)+F(P)+F(Q)+F(P×Q)=
2010-09-18 18:50:00
648
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2446
<br />/* * 很水的一个题目,为何给我弄得最后才AC * 自责ing * 1 + 1 + 2 + 1 + 2 + 3 + .... = n(n + 1)(n + 2) / 6; * 二分找最小的n 满足n(n + 1)(n + 2) / 6 >= yy * 在二分找r(r + 1)/2 <= xx * 在最大r * 原来是long 相乘的时候益处了,一直以为是自己的代码写错了 * zhc说的对,用了BigInteger 干嘛要用long * 好
2010-09-16 20:04:00
731
转载 [Asia - Hefei - 2008/2009][B:Discrete Square Roots][数论基础] 还是不是很懂,先转
<br /> <br />看了一下问题,大家可以到ACM/ICPC的那个网站上搞到题目<br />A square root of a number x is a number r such that r2 = x . A discrete square root of a non-negative integer x<br />is a non-negative integer r such that r2 x mod N , 0 r < N , where N is a specific positi
2010-09-15 18:34:00
550
转载 不定方程(什么是不定方程)
<br />不定方程 所谓不定方程,是指未知数的个数多于方程个数,且未知数受到某些(如要求是有理数、整数或正整数等等)的方程或方程组。不定方程也称为丢番图方程,是数论的重要分支学科,也是历史上最活跃的数学领域之一。不定方程的内容十分丰富,与代数数论、几何数论、集合数论等等都有较为密切的联系。不定方程的重要性在数学竞赛中也得到了充分的体现,每年世界各地的数学竞赛吉,不定方程都占有一席之地;另外它也是培养学生思维能力的好材料,数学竞赛中的不定方程问题,不仅要求学生对初等数论的一般理论、方法有一定的了解,而且更
2010-09-15 11:35:00
7422
原创 ubuntu初体验
<br /><br />由于ubuntu和windows的编码方式不同ubuntu是UTF—8,windows是GBK,所以在ubuntu下打开windows下的一些txt文件等,里面会是乱码,需要进行简单设置<br /> 设置中文环境单击主菜单中的“系统(System) --> 系统管理(Administration) --> 语言支持(language support)”。在“支持的语言”列表中找到“汉语(Chinese)”,在右端打上勾。同时将默认语言修改为“汉语(Chinese)”并勾选“启用复杂字
2010-09-14 09:25:00
959
原创 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3403
<br />/* 这样的水题把我卡的好惨的,看来不够细心啊 */ #include <iostream>#include <cstdio>#include <cmath>typedef long long LL;using namespace std;const long long year = 18382;//LL ye[] = {1, 9, 36, 100, 225, 441, 784, 1296, 2025, 3025, 4356, 6084};int mon[
2010-09-04 23:58:00
1166
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1532 EK
<br />#include <algorithm>#include <cstdio>#include <iostream>#include <queue>#include <cstring>using namespace std;const int N = 205;struct Node{ int c, end; int next;} E[2 * N];int pre[N]; // 记录前驱 int head[N]; int path[N]; // 记录
2010-08-30 15:25:00
649
原创 http://acm.hdu.edu.cn/showproblem.php?pid=3015 树状数组
<br />/*纯属参考 : http://hi.baidu.com/forverlin1204/blog/item/98cb564dcdcc25f5d62afc61.html 树状数组题目描述:给定一个长为n的序列,元素有两个属性x,h(x代表坐标,h代表高度)求任意点(i,j)对的不调和值之和,不调和值有两部分组成F和SF是指i和j的x坐标(离散化后)差的绝对值F=abs(x[i]-x[j])S是指i和j的高度(离散化后)S=min(h[i],h[j]),这两者之积F*S就是(i
2010-08-30 06:36:00
684
1
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1779 线段树 求区间最大值 结点更新
<br /> #include <iostream>#include <cstdio>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 100005;struct Seg_tree { int l, r; int val; //本区间累加值 int maxval; //记录子区间最大值 int loction; //子区间最大值位置
2010-08-29 21:07:00
740
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2642 二维线段树
/* 二维线段树*/#include #include #include #define LL(x) ((x) > 1; }};struct Main_tree{ int lx, rx; Sub_tree sub[4 * N]; int mid(){ return (lx + rx) >> 1; }}tree[4 * N];bool hash[N][N];bool readint(int &ret){ int sgn; char
2010-08-29 02:07:00
501
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1823 二维线段树
<br />/* 二维的线段树跟一维的似乎一样的 身高建为x轴 活泼度为y轴*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 100;struct Sub_tree { int l, r
2010-08-29 00:23:00
572
原创 http://acm.hdu.edu.cn/showproblem.php?pid=3450 线段树 + dp
<br />/* 这题是凭着感觉写的 */#include <iostream>#include <cstdio>#include <algorithm>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 100005;const int mod = 9901;struct Seg_tree{ int l, r, sum; int mi
2010-08-27 22:40:00
557
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2688 数状数组 线段树
<br />/* 这个题目对于线段树时间卡的很紧,所以才迫不得已学习树状数组 */#include <iostream>#include <cstdio>#include <cstring>#define lowbit(x) (x & (-x)) // 具体怎么实现我也不知道using namespace std;const int N = 10005;const int M = 3000005;int tree[N];int df[M];int Quer
2010-08-27 18:55:00
554
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2227 dp + 线段树
<br />/* * 说什么好呢?对于这个题目写了好几天 感觉 dp + 线段树 总有道关卡,一直突破不了,总是在漫无边际的沼泽挣扎 * 因为这样心情严重受挫 * 区间的维护总是很难跟dp 联系在一起,单单的区间维护是会的,但是感觉牵扯上了dp,就什么都不会了,dp 。。一个字,怕 * 或许挣扎就是收获吧,渐渐地应该学会如何取分析问题,如何看待wrong * 一开始敲代码的时候。我就是完全没有理解题目,想当然的理解题目是一个悲剧阿 * * 题目求的是一个序列中非递
2010-08-25 17:10:00
896
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1452 因子求和
<br />/* * 求2004^x 的素数因子的和 * n = a1 ^ p1 * a2 ^ p2 *... a3 ^ p3 * n的因子之和 sum = (a1 ^ 0 + a1 ^ 1 + ... a1 ^ p1) * (a2 ^ 0 + a2 ^ 1 + ... a2 ^ p2) * (a / b) mod m = (a % (b * m)) / b * 将2004 进行因式分解带入公式就OK * 等比数列求和 s = (an * q
2010-08-21 18:43:00
1001
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1541 结点更新求最左区间的个数
<br />/* * 少写一个询问的函数,以为一个更新的函数就够了,结果。。。。 * 就是结点更新求最左区间的个数 */#include <iostream>#include <cstdio>#include <cstring>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 32005;struct Seg_tree{ int l
2010-08-20 17:42:00
501
1
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1255 扫描线 + 线段树 +离散化
<br />/* * 这个跟昨天写的矩形面积的并是差不多的,而且我译开始还是写的一样的,sample都相差那么一点的 * 看了别人的加了moresum就OK那里的更新还是有点不理解的,转下一下的供自己回忆题意:求矩形的交的面积!覆盖两次或以上!将每个矩形的两条纵向边看成两个事件点,遇到左端点,插入该纵向边,遇到右节点,删除该边!对所有y坐标进行离散化!进行线段树的插入和更新操作!其实这道题跟求矩形的并的面积类似。不同的是更新每个节点覆盖长度的操作!我采用cover,once,
2010-08-20 15:20:00
1229
1
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1542 矩形面积的并 线段树 + 扫描线 + 离散化
<br />#include <iostream>#include <cstdio>#include <algorithm>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 100005;struct Seg_tree{ int l, r; int st; double sum; int mid(){ return (l + r) >>
2010-08-20 12:57:00
533
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=3667 区间更新+求满足长短的最左区间
<br />#include <iostream>#include <cstdio>#include <algorithm>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 500005;struct Seg_tree { int l, r; int st; int l_size, size, r_size; int mid() { re
2010-08-19 19:26:00
586
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2871 更新最左区间
<br />/* 这题跟pku hotel 是一样的,只是询问没有那么明显 new w 可以先找到最左边长度为w的内存块,求的其最左边的下标l 然后 l 到 l + w - 1 这个区间进行更新 并且把l , l + w - 1 存入数组,方便Get Free 操作 */#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#defi
2010-08-19 19:21:00
421
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1540 更新节点,询问节点所在的位置有多少连续的区间
<br />/* * 这个题目跟hotel差不多的,可以说是一样的。好就没有用vector了,陌生了 * 更新节点,询问节点所在的位置有多少连续的区间 */#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <algorithm>#include <stack>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 |
2010-08-18 18:37:00
554
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=2409 polya或者burnside
<br />/* 组合数学?? 查了很多资料这个题目很是很模糊。。*/#include <iostream>#include <cstdio>using namespace std; long long Gcd(long long a, long long b){ if(b == 0) return a; return Gcd(b, a % b);} inline long long Pow(long long a, long long b){
2010-08-17 21:51:00
542
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2795 更新节点构造线段数很关键,询问特殊
<br />/* 题意:有一个广告牌,高是h宽为w。现在要在上面贴纸条做广告,每个纸条都是单位长度的, 也就是h = 1;宽不一致!要求尽可能的往顶头贴,其次尽可能的往左边贴, 求给出规格的纸条能贴在广告牌上的第几行!(1 到 h) 然而 1 <= h , w <= 10^9 这个大的范围,如何线段树开不了那么大的数组 n <= 200000; 假设给我们n个数据都是1*w(w == 10^9),不是最多只能贴20000行么?? 这个题目跟平常作的有点不一样的,
2010-08-16 20:47:00
557
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=2528 成段更新,区间统计颜色的种类(离散化处理线段)
<br />/* * 成段更新,区间统计颜色的种类(离散化处理线段) */#include <iostream>#include <cstdio>#include <algorithm>#include <bitset>#include <cstring>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 10010;struct Line
2010-08-16 18:36:00
638
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=3468 成段更新,区间求和(要用long long)
<br />/* 好不容易AC的, vim这个插件有时海的我好惨的. */#include <iostream>#include <cstdio>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1)using namespace std;const int N = 100005;struct Seg_tree{ int l, r; long long val; // 保存一段区间内增加的值 long
2010-08-16 14:06:00
409
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=2777 成段更新,区间统计颜色的种类 (用的位运算, 可是写的很搓)
/* 一开始以为跟hdu1698一样的,而这个题目求的是颜色的种类, hdu1698求的区间的和,sb的以为题目求的是一样的 线段建树是写的有点熟起来的,可是主要的Update还是不会的 */#include #include #include #define LL(x) ((x) > 1; }}tree[N * 3];bool hash[100];inline void Build(int l, int r, int node){ tree[node].l
2010-08-15 21:42:00
735
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1166 更新节点,区间求和
<br />/* 更新节点,区间求和*/#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespace std;const int N = 50005;struct Tree{ int l, r, sum;};Tree tree[3 * N];int num[N];inline void DFS_tree(int node, int l, in
2010-08-13 21:26:00
533
1
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1754 更新节点,区间最值
<br />/* 更新节点,区间最值,这个题目可以参考模板勉强写出来*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 600005;struct Seg_tree{ int l, r, max; int mid(){ return (l + r) / 2; }}tree[N];i
2010-08-13 21:23:00
357
原创 http://acm.hdu.edu.cn/showproblem.php?pid=1698 成段更新,总区间求和
<br />/* 成段更新,总区间求和,刚开始学线段树,只有参考别人的代码的时候才能写出来*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define LL(x) ((x) << 1)#define RR(x) ((x) << 1 | 1) // 看来以后要学会写这个啊using namespace std;const int N = 100005;struc
2010-08-13 21:19:00
569
原创 数论--欧拉函数的整理(悔惜晟)
<br />相关题目: http://acm.hdu.edu.cn/showproblem.php?pid=2824 pku 2478(与前n个数互质的个数的求和) http://acm.hdu.edu.cn/showproblem.php?pid=3508 素因子的积 http://acm.hdu.edu.cn/showproblem.php?pid=2710 题目很简单,就是输出N个数素数因子最大的那一个 http://acm.hdu.edu.cn/showproblem.php?pid
2010-08-12 22:53:00
993
原创 http://acm.hdu.edu.cn/showproblem.php?pid=2824 pku 2478(与前n个数互质的个数的求和)
<br />/* 一开始用了预处理,但是时间复杂程度很高,一直TLE 用了下面犀利的欧拉函数的求法AC了。这题跟hdu2824 差不多的 只是hdu那道要求更高 hdu __int64 long long 都要用%I64d输出地 pku long long %lld 以后这些细节要注意啊!! E(x)表示比x小的且与x互质的正整数的个数。 *若p是素数,E(p)=p-1。 *E(p^k)=p^k-p^(k-1)=(p-1)*P^(k-1) 证:令n=
2010-08-12 20:46:00
1319
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=1284 (原根)
<br />/* poj 1284 原跟 设h为一整数,n为一正整数,(h,n)=k,适合h^k=1(mod n)的最小正整数k叫做h对n的次数。如果k=φ(n),则此时h被称为模n的原根。 1773年,欧拉证明了素数P有原根。1785年,勒让德证明:设k|(p-1),恰有φ(k)个模p互不同余的数对模p的次数为k。 大家可以去搜索一下“二次剩余” p是奇素数,如果{xi%p | 1 <= i <= p - 1} = {1,2,...,p-1},则称x是p的原根. 给出一个p,问它的
2010-08-11 18:52:00
1085
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=1808 二次剩余式
<br />/* *> 考虑形如x2≡n(mod m)的同余式,其中m > 1,(m,n)=1。若此同余式有解,则n称为模m的二次剩余;若此同余式无解,则n称为模m的二次非剩余。设p是一个奇素数,则模p的二次剩余和二次非剩余个数正好是“一半对一半”,下表给出几个较小的素数模的二次剩余和非剩余:> p 剩余 非剩余> 3 1 2> 5 1,4 2,3> 7 1,2,4 3,5,6> 11 1,3,4,5,9 2,6,7,8,10> 13 1,3,4,9,11,12 2,5,6,7,
2010-08-11 18:49:00
684
原创 http://acm.pku.edu.cn/JudgeOnline/problem?id=2891 欧几里德线性同余方程
<br />/*对于同余方程组:x=a1 (mod m1)x=a2 (mod m2)方程组有一个小于m(m1,m2的最小公倍数)的非负整数解的充要条件是(a1-a2)%gcd(m1,m2)=0,同样利用扩展欧几里得算法。两式联立:a1+m1*y=a2+m2*z则:a1-a2=m2*z-m1*y这样就可以解出z和y,则:x=a2+m2*z而对于一般情形:(设m1,m2,...mk两两互素)时有:a=b[1] (mod w[1])a=b[2] (mod w[2]).....
2010-08-11 12:50:00
801
原创 http://acm.hdu.edu.cn/showproblem.php?pid=3521 (暴力)
<br /><br />/*<br /> * 早知比赛的时候试下了,暴力居然行的 5555555<br /> */<br />#include <iostream><br />#include <cstdio><br />#include <cmath><br />#include <cstring><br />using namespace std;<br /> <br />const int N = 105;<br />struct Mat{<br />double num[N][N];<br />M
2010-08-10 20:55:00
592
UCenterHome二次开发文档大全 【很全】
2011-07-26
计算机图形学 边界定义的8连通区域的种子填充算法
2011-04-23
photoshop cs5 flash cs5 Dreamweaver cs5 帮助中文文档
2011-03-27
杭电 基于dos的多任务系统的实现 验收版
2010-12-24
杭电 操作系统课程设计报告的模板
2010-12-24
杭电操作系统课程设计-线程调度 和 消息传递 课本p156作业答案整理
2010-11-29
ObjectDockplus2 插件
2010-11-28
Stardock.ObjectDock.Plus.v2.0.50727 和破解码
2010-11-28
图标 下载 Applications 482
2010-11-28
Visual+C#2008程序开发入门与提高源代码(16-19)
2010-11-25
Visual+C#2008程序开发入门与提高源代码(22)
2010-11-25
Visual+C#+程序开发入门与提高源代码(1-15章)
2010-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人