08 2013 档案

摘要:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1303这个OJ很容易跪所以我贴一下题目Description任意一个分数都是有理数,对于任意一个有限小数,我们都可以表示成一个无限循环小数的形式(在其末尾添加0),对于任意一个无限循环小数都可以转化成一个分数。现在你的任务就是将任意一个无限循环小数转化成既约分数形式。所谓既约分数表示,分子和分母的最大公约数是1。Input有多组数据。每组数据一行。输入为0.a1a2a3...ak(b1b2...bm)的形式,其中a1a2a3...ak为非循环部分,(b1b2b3..bm)为循环部分。数据保证非循 阅读全文
posted @ 2013-08-31 17:35 Felix_F 阅读(284) 评论(0) 推荐(0) 编辑
摘要:int n = 6; for (int k = 1; k >(n-1-i)&1); printf("\n"); int b = s & -s; s = (s+b)|(((s^(s+b))>>2)/b); } }就是这么一段小程序...可以按1的个数升序枚举1~2^n所有值 , 其中最后一句位运算更是感觉超酷...我暂时能看懂的:s起始前k位都为1b是s的最低位结果还是看不懂...不得不佩服这个位运算巨巨写出来的 阅读全文
posted @ 2013-08-25 01:50 Felix_F 阅读(441) 评论(0) 推荐(0) 编辑
摘要:http://acm.whu.edu.cn/land/problem/detail?problem_id=1470大概是给你一个队列,每次移动队头的数到队尾并减1,如果本身这个数为1就删去.然后ans+=这个数*(队列长度-1),求最小的ans只要最小的元素最先删除就能保证结果最小解法:先对原数列排序然后模拟原操作...但是t[i]太大.显然不能一个个的模拟...其实稍微推一下就能得出每次到达能删除元素的时候整个队列循环了t[i]-1次...我们维护一下后缀和suffix...就能得到这个公式:前面等差数列,后面等差数列O(1)就能求出总共n个数,总共O(n)Notice:等差数列里面/2不能 阅读全文
posted @ 2013-08-24 19:40 Felix_F 阅读(221) 评论(0) 推荐(0) 编辑
摘要:水题euler 是直接判断euler2 是欧拉筛/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;# 阅读全文
posted @ 2013-08-23 20:32 Felix_F 阅读(213) 评论(0) 推荐(0) 编辑
摘要:很容易得出答案就是2^(n-1)但是N暴大,所以不可以直接用幂取模,因为除法操作至少O(len)了,总时间会达到O(len*log(N)) 显然爆的一塌糊涂套用FZU1759的模板+顺手写一个大数-1http://acm.fzu.edu.cn/problem.php?pid=1759标程的做法是用费马小定理 , ap-1≡1(mod p)那么2(1e9+6)%(1e9+7)= 1很容易得出 2k%(10e+7) = 2k%(10e+6)%(10e+7)然后就能用快速幂了 但FZU那题显然不是这么水的...我暂时也没看懂是怎么做的现在看懂这个意思了,根据著名的欧拉公式:A^PHI(C)=1(MO 阅读全文
posted @ 2013-08-22 19:39 Felix_F 阅读(346) 评论(0) 推荐(0) 编辑
摘要:维护两个栈,分别存光标前和光标后的数再维护前缀和的栈 和 前缀和最大值的栈注意一下左移,右移,删除到顶了就不操作了5个操作I x : 光标处插入x -----> s1.push(x)D : 光标前删除 -----> s1.pop()L : 光标左移 -----> s2.push(s1.top()) s1.pop()R : 光标右移 -----> s1.push(s2.top()) s2.pop()Q k : 输出前k个数前缀和最大值/********************* Template ************************/#include #inc 阅读全文
posted @ 2013-08-22 19:34 Felix_F 阅读(335) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4696由题意可知 1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define EPS 1e-8#define MAXN ... 阅读全文
posted @ 2013-08-22 19:27 Felix_F 阅读(294) 评论(2) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4686又是逗比题...然后就能构造矩阵了重构了一下快速幂...感觉很爽很好用...直接a^b就搞定/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ 阅读全文
posted @ 2013-08-21 15:28 Felix_F 阅读(201) 评论(0) 推荐(0) 编辑
摘要:和本文无关 :AC巨巨的数论小结:http://hi.baidu.com/aekdycoin/item/ec528c969cf7a230336eebaePOJ 1222 EXTENDED LIGHTS OUThttp://acm.pku.edu.cn/JudgeOnline/problem?id=1222POJ 1681 Painter's Problemhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1681POJ 1753 Flip Gamehttp://acm.pku.edu.cn/JudgeOnline/problem?id=1753P 阅读全文
posted @ 2013-08-20 00:01 Felix_F 阅读(420) 评论(0) 推荐(0) 编辑
摘要:计算几何实在是太繁杂了...搞了小半个暑假也没搞出什么成果也就切了点模板题...实在太弱...看了这篇以后感觉自己还是切的题太弱本文从爱酱巨巨(cxlove)那里转来的...也切了里面一小部分了...继续随机切吧...sad...以下是正文这两天在学习计算几何,随便说说自己的学习过程吧。 基本的叉积、点积和凸包等东西就不多说什么了,网上一搜一大堆,切一些题目基本熟悉了就差不多了。 一些基本的题目可以自己搜索,比如这个blog:http://blog.sina.com.cn/s/blog_49c5866c0100f3om.html 接下来,研究了半平面交,思想方法看07年朱泽园的国家队论文... 阅读全文
posted @ 2013-08-19 23:49 Felix_F 阅读(293) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2891结果看了半天还是没懂那个模的含义...懂了我再补充...其他的思路都在注释里/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc 阅读全文
posted @ 2013-08-19 22:40 Felix_F 阅读(236) 评论(0) 推荐(0) 编辑
摘要:比如说我安装了一个绿色版的sublime(.tar解压出来的不是.deb)但是现在我右键不能打开,不能添加为默认打开方式...这个时候就比较尴尬了...我总不能每次都cd到安装目录下然后terminal下启动然后再open文件吧...这也太麻烦了于是我找到了这个办法:全局文件关联(这里暂时用不到) /usr/share/applications/default.list个人文件关联 ~/.local/share/applications/mimeapps.list你cd到这个目录下 ... 用sudo vim(或者别的你已经装好的编辑器) mimeapps.list 打开这个文件[Defa.. 阅读全文
posted @ 2013-08-19 14:43 Felix_F 阅读(8591) 评论(4) 推荐(3) 编辑
摘要:http://acm.fzu.edu.cn/problem.php?pid=1402逗比题..和前面那题一样解就行了...反正都是素数,就把中国剩余定理拓展一下...普及姿势好了:逆元:对于同余方程 :我们有 :x就是A对B的逆元了 用EX_GCD求出x即可 ,这里x可能为负数, 对B做正取模中国剩余定理 :对于方程组我们有如下性质然后带公式即可/********************* Template ************************/#include #include #include #include #include #include #include #inclu 阅读全文
posted @ 2013-08-18 22:10 Felix_F 阅读(381) 评论(0) 推荐(0) 编辑
摘要:逗比水题...中国剩余定理(适用于互质情况)离线算:k1 % 23 == 0 && k1 % 28 == 0 && k1 % 33 == 1k2 % 23 == 0 && k2 % 28 == 1 && k3 % 33 == 0k3 % 23 == 1 && k3 % 28 == 0 && k3 % 33 == 0ans = (k1*p + k2*e + k3*i) % 21252因为还有天数d 就减d再取模 直接输出就行了/********************* Template ****** 阅读全文
posted @ 2013-08-18 20:27 Felix_F 阅读(219) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1061傻逼题不多说(x+km) - (y+kn) = dL 求k令b = n-m ; a = x - y ;化成模线性方程一般式 : Lx+by=a 再除gcd化简成最简形式 使得L,b互素 (即构造 L'x+b'y =1)求Ex_GCD得到 y * a 就是最后的答案...还是一样要化成正整数形式pair ex_gcd(LL a,LL b){ if(b == 0) return make_pair(1,0); pair t = ex_gcd(b,a%b); return make_pair(t.second , t.fi. 阅读全文
posted @ 2013-08-17 20:34 Felix_F 阅读(192) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1576写了个ex_gcd的模板...太蠢导致推了很久的公式这里推导一下:因为 1 =BX + 9973Y ----------------①且 n = Bk - floor(A/9973) * 9973 ----------------②①*n即 n = BnX + nY * 9973那么 k = nXk = A/B ...而k%9973为所求(n*X)%9973 = (n%9973 * X%9973)%9973 = (n%9973 * (X%9973+9973)) % 9973那... 阅读全文
posted @ 2013-08-17 17:02 Felix_F 阅读(231) 评论(0) 推荐(0) 编辑
摘要:A:sort以后求差值最小int a[100];int main(){ int n,m; cin>>n>>m; for(int i = 0 ; i >a[i]; sort(a,a+m); int mm = INF; for(int i = 0 ; i+n-1 >a>>b>>c>>d; a1 = a; b1 = b; c1 = c; d1 = d; LL p = lcm(a,c); b = b * (p/a); a = p; d = d * (p/c); c = p; if(b > d) { ... 阅读全文
posted @ 2013-08-17 10:42 Felix_F 阅读(213) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4678自己太蠢...没学SG...还是浩神指点我SG精髓以后才A的这题...(第一题SG这里子游戏之间没有影响所以只要找规律得出所有子游戏的SG值 然后求XOR就行了这里题面太复杂 但看懂以后其实可以转换成取石子游戏:给你N堆石子 , 每次只能取一个或者整堆取走 谁先取完谁胜每堆石子的数量就是空白部分附近所有连接数字的数量+1(空白本身算一个石子)孤立的单个数字也组成一堆那么根据找规律可得:奇数堆SG = 1 偶数堆SG = 2/********************* Template ********* 阅读全文
posted @ 2013-08-16 22:34 Felix_F 阅读(216) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1474解法同POJ 1279 A一送一 缺点是还是O(n^2) ...nlogn的过几天补上.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl 阅读全文
posted @ 2013-08-15 02:58 Felix_F 阅读(236) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1279顺时针给你一个多边形...求能看到所有点的面积...用半平面对所有边取交即可,模版题这里的半平面交是O(n^2)的算法...比较逗比...暴力对每条线段做半平面交...要注意的地方写在注释里了...顺序写反了卡了我好久/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #incl 阅读全文
posted @ 2013-08-14 20:57 Felix_F 阅读(266) 评论(0) 推荐(0) 编辑
摘要:最近VIM用的也越来越多了...因为确实在慢慢的把win下的编辑习惯转成unix下的编辑习惯..._vimrc也在不断的完善中先贴一下平时在VIM中使用中的命令...有很多也是我没有掌握的(估计也是转的)原帖地址:http://www.oschina.net/news/43167/130-essential-vim-commands基础:e filenameOpenfilenamefor edition:wSave file:qExit Vim:q!Quit without saving:xWrite file (if changes has been made) and exit:sav f 阅读全文
posted @ 2013-08-14 10:04 Felix_F 阅读(299) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4671水题...构造前两列 ...最傻逼的模拟方法...统计数量后均摊到所有项.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl 阅读全文
posted @ 2013-08-13 23:59 Felix_F 阅读(208) 评论(0) 推荐(0) 编辑
摘要:求点集中面积最大的三角形...显然这个三角形在凸包上...但是旋转卡壳一般都是一个点卡另一个点...这种要求三角形的情况就要枚举底边的两个点 卡另一个点了...随着底边点的递增, 最大点显然是在以l(i,j)为底边进行卡壳旋转但分析了一下这种卡壳的复杂度到了O(n^2) 感觉不太靠谱...不知道有没有更强的方法...我感觉两个点卡的时候都是凸函数...不是很好卡的样子...如果我想到了我再更新这贴.../********************* Template ************************/#include #include #include #include #inc 阅读全文
posted @ 2013-08-11 20:37 Felix_F 阅读(357) 评论(0) 推荐(0) 编辑
摘要:不知道谁转的计算几何题集里面有这个题...标题还写的是基本线段求交...结果题都没看就直接敲了个线段交...各种姿势WA一遍以后发现题意根本不是线段交而是直线交...白改了那个模板...乱发文的同学真是该死...浪费我几个小时的生命.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #includ 阅读全文
posted @ 2013-08-11 15:22 Felix_F 阅读(182) 评论(0) 推荐(0) 编辑
摘要:水题直接码.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define EPS ... 阅读全文
posted @ 2013-08-11 10:24 Felix_F 阅读(208) 评论(0) 推荐(0) 编辑
摘要:太困了于是没做...第二天看题蘑菇题居多就只切了简单的两个...A:直接输出...int main(){ //FIN; //FOUT; int x,y; cin>>x>>y; int q = abs(abs(x) + abs(y)); if(x > 0 && y > 0) cout 0) cout 0 && y v;int main(){ //FIN; //FOUT; int n,a; cin>>n; for(int i = 0 ; i >a; v.push_back(a); ... 阅读全文
posted @ 2013-08-10 19:33 Felix_F 阅读(212) 评论(0) 推荐(0) 编辑
摘要:http://acm.sgu.ru/problem.php?contest=0&problem=253题意简单易懂...给你n个点的凸包(经测试已经是极角序)...判断m个点是否在凸包内...数量>=k就输出YES46ms过的...貌似数据很水...但暴力判断每个点复杂度O(n*m)肯定T了...二分可以优化到O(mlogn) -----该算法受到AC巨巨的启发:http://hi.baidu.com/aekdycoin/item/2d54f9c0fef55457ad00efd6把凸包分成n-2个三角形...然后二分点是否在这些三角形内即可...注意一下只有三个点的情况即可/** 阅读全文
posted @ 2013-08-10 08:45 Felix_F 阅读(981) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1118直接枚举O(n^3) 1500ms能过...数据太水了...这个代码就不贴了...斜率排序O(n^2logn)是更好的做法...枚举斜率...直线方程相同的线段数量k...一定满足方程 n(n-1)/2=k --------------- 还真是baka. 到2点才想出这个结论特判只有一个点,两个点的情况...500ms AC/********************* Template ************************/#include #include #include #include #include #inc 阅读全文
posted @ 2013-08-08 00:16 Felix_F 阅读(349) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1265求凸多边形上,凸多边形内的整点个数 以及凸多边形的面积...pick 定理 : S = L/2 + N -1S为多边形的面积 , L为多边形上整点的个数 , N为多边形内整点的个数多边形上点的个数 对两个端点的横纵左边的绝对值做GCD就可以求得多边形面积对相邻两点用叉积/2 后相加就可求得/********************* Template ************************/#include #include #include #include #include #include #include #incl 阅读全文
posted @ 2013-08-07 14:36 Felix_F 阅读(199) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2187旋转卡壳的思想并不难,你就想象是两个平行直线夹住凸包...求的就是夹住的两个对锺点...这题更容易了...求出所有对锺点以后直接一遍扫过去求最大点距就行了...用的是一个结论: s[i],s[i+1],s[q] 构成的三角形只要面积最大 和 就一定是对锺点对接下来根据观察...按逆时针枚举所有边的时候q的位置一定是逆时针移动...所以我们根据上一点q的位置逆时针枚举点即可...找凸包O(nlogn) , 第一遍找q O(n) , 之后旋转操作 O(n) , 总共的复杂度O(nlogn)提醒一下这题很坑...必须处理 只有2个点,共线, 阅读全文
posted @ 2013-08-05 21:01 Felix_F 阅读(241) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1113不多说...凸包网上解法很多,这个是用graham的极角排序,也就是算导上的那个解法其实其他方法随便乱搞都行...我只是测一下模板...struct POINT{ double x,y; POINT(double _x = 0, double _y = 0):x(_x),y(_y){};};POINT p[MAXN],s[MAXN];double dist(POINT p1,POINT p2){ return(sqrt((p1.x-p2.x) * (p1.x-p2.x) + (p1.y-p2.y) * (p1.y-p... 阅读全文
posted @ 2013-08-04 20:17 Felix_F 阅读(219) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2653http://acm.hdu.edu.cn/showproblem.php?pid=1147http://acm.hdu.edu.cn/showproblem.php?pid=1086一个模板过三水题测自己写的模板 但是因为队列q.size()动态更新了导致挂了一个下午...真是太傻逼模板写的很明白了...快速判断可要可不要 , 判断线段重合和覆盖的函数也可要可不要.../********************* Template ************************/#include #include #include 阅读全文
posted @ 2013-08-02 23:11 Felix_F 阅读(215) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4631题意: 在平面内依次加点,求每次加点后最近点对距离平方的和因为是找平面最近点对...所以加点以后这个最短距离一定是递减的...所以最后会形成这样一个函数图像所以我们只要从后往前依次删点即可...15秒惊险水过...不过我最小点对的木板肯定写挂了,卡时限的话估计过不了...请用G++交...C++会TLE...当然我也无法解释这个问题...估计是我傻逼/********************* Template ************************/#include #include #in 阅读全文
posted @ 2013-08-01 22:20 Felix_F 阅读(264) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示