摘要: 水题直接码.../********************* 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 阅读(210) 评论(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 阅读(986) 评论(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 阅读(243) 评论(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 阅读(217) 评论(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 阅读(268) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1007上半年在人人上看到过这个题,当时就知道用分治但是没有仔细想...今年多校又出了这个...于是学习了一下平面内求最近点对的算法...算导上也给了详细的说明虽然一看就知道直接用分治O(nlogn)的算法 , 但是平面内最近点对的算法复杂度证明我看了一天也没有完全看明白...代码我已经做了一些优化...但肯定还能进一步优化..我是2s漂过的非常惭愧...(甚至优化以后时间还多了...不明白原因/********************* Template ************************/#i 阅读全文
posted @ 2013-07-31 20:42 Felix_F 阅读(194) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2281又是一道Pell方程化简构造以后的Pell方程为求出其前15个解,但这些解不一定满足等式,判断后只有5个满足的情况,直接判断即可求法可以参照上一篇日志:http://www.cnblogs.com/Felix-F/p/3223323.htmlstruct matrix{ LL ma[2][2];};int n = 2;LL nn[20],xx[20];matrix operator * (matrix a,matrix b){ matrix temp; memset(temp.ma,0... 阅读全文
posted @ 2013-07-30 10:53 Felix_F 阅读(396) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1320题意很简单,有序列 1,2,3...(a-1),a,(a+1)...b 要使以a为分界的 前缀和 和 后缀和 相等 求a,b因为序列很特殊所以我们用数学方法就可以解决 :求和: a*(a-1)/2 = (a+1+b)(b-a)/2化简: 2a2 = b2+ b两边乘4,构造完全平方项 (2b+1)2 -8a2 = 1令 x = 2*b+1; y = a;我们就得到了一个形如Pell方程x2- Dy2= 1的式子x2- 8y2= 1这题就是求Pell方程的第K个解 , 因为方程已经告诉你了所以我们可以目测出最小解以用来构造矩阵来求出.. 阅读全文
posted @ 2013-07-29 17:24 Felix_F 阅读(377) 评论(0) 推荐(0)
摘要: 题目链接 : http://poj.org/problem?id=2427PELL方程几个学习的网址:http://mathworld.wolfram.com/PellEquation.html wolfram的讲解http://hi.baidu.com/aekdycoin/item/a45f7c37850e5b9db80c03d1 AC神的博客http://blog.csdn.net/acdreamers/article/details/8529686 acdreamer的博客 (从这里知道的思路...Pell方程 : 形如 X2 - D*Y2 = 1 的式子我们称作Pell方程 (D... 阅读全文
posted @ 2013-07-29 13:24 Felix_F 阅读(744) 评论(0) 推荐(0)
摘要: http://codeforces.com/contest/334A题意:1-n^2 平均分成 n 份,每份n个数,且和相同解法 : 构造矩阵1-n^2的矩阵即可int a[105][105];int main(){ int n; scanf("%d",&n); int k = n*n; int c = 1; for(int i = 0 ; i >p[i].x>>p[i].y; sort(p,p+8,cmp); for(int i = 0 ; i n且硬币数最多且这些硬币的子集不能>=n解法 : 贪心,如果非3的倍数一定是n/3+1 即全换成 阅读全文
posted @ 2013-07-28 10:48 Felix_F 阅读(355) 评论(0) 推荐(0)
摘要: 连分数乱搞,我反正是一眼没看出结果某巨巨把这题讲解的比较详细 :http://blog.csdn.net/gogdizzy/article/details/8727386令k = [a/b] 然后对于a/b 1,那么最终结果p = q = 1 也显然的如果c/d d*p/c 所以 q = q * d / c + 1最后因为 p > q * a / b 所以p = q * a / b + 1LL dfs(LL a , LL b , LL c , LL d){ LL k = a/b; a = a-b*k; c = c-d*k; if(c > d) return 1; ret... 阅读全文
posted @ 2013-07-27 16:10 Felix_F 阅读(196) 评论(0) 推荐(0)
摘要: A:直接判断前三项是否相等 1 int main() 2 { 3 //FIN; 4 //CHEAT; 5 int n; 6 cin>>n; 7 getchar(); 8 char a[4005]; 9 gets(a);10 int len = strlen(a);11 int cnt = 0;12 for(int i = 0 ; i >n>>k;12 for(int i = 1 ; i >a[i];15 sum[i] = sum[i-1] + a[i];16 }17 int ... 阅读全文
posted @ 2013-07-26 00:01 Felix_F 阅读(352) 评论(1) 推荐(0)
摘要: 大数乘法,暴力逐项乘后相加 O(n^2) 或者 用JAVA的BigInteger都超时这时候就要用到FFT了...多项式乘法,大数乘法都能在O(nlogn)时间内解决因为之前没有复变和数字信号课程的基础...所以今天看FFT异常的吃力...一个上午都在研究复数的概念看FFT的定义,下午的时候才开始看FFT的算法...晚上就学了一个别人的板...过了这个水题发现FFT完全就是模板,直接会用就行了...但是这里还是讲解一下原理:首先这个课件应该是最能解决概念性问题的:http://wenku.baidu.com/view/14457119de80d4d8d15a4f34.html然后就是kuang 阅读全文
posted @ 2013-07-25 09:26 Felix_F 阅读(284) 评论(0) 推荐(0)
摘要: 暑假的知识计划(补充中...)1.数论相关 (7days) 待完成 多项式同余方程/高次同余方程/欧拉函数/克莱姆法则/高斯消元/莫比乌斯反演/伪素数判定/baby-step-gaint-step2.组合数学相关(7days) 待完成 容斥/生成排列组合/polya计数/b... 阅读全文
posted @ 2013-07-24 00:13 Felix_F 阅读(208) 评论(1) 推荐(0)
摘要: 10W个点的一棵树,边权为1求访问K个点要走过的最小路程BFS求出一条最长路以后,我们可以YY出其他的边都要重复走两次树上的最长路可以从任意一点开始BFS求出这点的最大距离,再把终点设置为起点再做一次BFS所以就判断K和最长路间的距离就行了 O(n) 算法 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14... 阅读全文
posted @ 2013-07-23 22:41 Felix_F 阅读(293) 评论(0) 推荐(0)
摘要: Sublime Text 2 是很受ACMer喜爱的文本编辑器但是绿色版删除后无法设置为默认打开方式...而且网上也没有给出明确的解决办法注册表的解决办法:删除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe项。你就发现可以设置为默认打开方式了添加右键关联:添加HKEY_CLASSES_ROOT\*\shell\用Sublime Text 打开\command ------------------没有的项就自己添加其中command默认键值设置为E:\SoftWare\Sublime Text 3\subl.. 阅读全文
posted @ 2013-07-23 22:09 Felix_F 阅读(5740) 评论(2) 推荐(3)
摘要: 西山居的复赛第一题83758412013-05-24 23:57:27Accepted455762MS300K2364 BC++CSUST_FoRever当时傻逼了一个结构体的值没赋导致了几次WA...非常无语set的用法真的很强大今天算是完整的学习了一下...只是数据太水了导致题目很水...做法就是low_bound()函数直接返回比查询值大的迭代器 + 重载<运算符...struct person{ char name[50]; int power; int time;}temp;bool operator < (person a,person b){ if(a.p... 阅读全文
posted @ 2013-05-24 23:55 Felix_F 阅读(326) 评论(0) 推荐(0)
摘要: POJ 2485 自制prim 模版 复杂度O(ElogE) 优先队列优化#include <queue>#include <stack>#include <cstdio>#include <cstring>#include <vector>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;#define MAXN 1000#define MAXE 1000000#define INF 0x3f3 阅读全文
posted @ 2013-05-23 09:27 Felix_F 阅读(170) 评论(0) 推荐(0)
摘要: HelloWorld ! 从CSDN转到这边来了... 阅读全文
posted @ 2013-05-20 11:10 Felix_F 阅读(192) 评论(1) 推荐(0)
摘要: 纯粹就是为了写模板而写这个题...完全没算法直接trie搞掉Trie的动态思想我想也不用说了...显然大家都知道...虽然指针确实很烦...调试了快半个小时才调试完毕#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ... 阅读全文
posted @ 2013-05-03 13:01 Felix_F 阅读(113) 评论(0) 推荐(0)
摘要: 判断是否有前缀...明显就是一个trie了...裸的不能再裸注意用动态的trie额外分配内存的时候会TLE...所以就用静态的...不过静态trie一开始还不太会用...不过后来感觉思路和静态邻接表感觉差不多...#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #in... 阅读全文
posted @ 2013-04-23 13:54 Felix_F 阅读(131) 评论(0) 推荐(0)
摘要: 题目列表 > 无尽的编号时间限制: 1000ms 内存限制: 256MB描述在一条公路上,将要依次建造N座建筑。在每个建筑建成之后,都会用一个01串来给它编号。整条公路从起点到终点,所有建筑的编号都严格按照字典序递增的顺序来排列,而每在一个新的地方建起一个建筑时,它的编号会按以下规则确定:1) 编号要比前一个建筑(起点方向)的字典序大,比后一个建筑(终点方向)的字典序小3) 编号一定以1结尾2) 编号要尽可能短,满足该条件时,字典序尽可能小最开始时,公路的起点和终点上各有一个建筑,编号分别是0和1。接下来依次给出N个坐标 a1, a2, ..., aN,依次表示下一个建筑将要建造的位置, 阅读全文
posted @ 2013-04-23 13:47 Felix_F 阅读(221) 评论(0) 推荐(0)
摘要: 一开始用邻接矩阵交TLE 分析以后发现 O(n^3) = 1500^3 必须超时但是对于 邻接表 O(m*n) = 1500 * 15000 对于两秒来说完全够了所以我把木板推倒重写了一遍二分图...还是挺有成就感的...至少以后的题目都可以用把原来低效的木板推掉了都忘记说题意了...就是给你一棵树, 求最小的点能覆盖所有的边...他们说用什么树形DP做我想想貌似也能搞...但这题对于二分图木板就完全就是裸题了然后这图是无向图,所以最后的结果要/2 这个应该很容易证明了 我就不赘述了二分图邻接表木板如下/********************* Template ************** 阅读全文
posted @ 2013-04-10 13:00 Felix_F 阅读(205) 评论(0) 推荐(0)
摘要: substr()函数用法:substr(起始位置,长度)#include#includeusing namespace std;main(){ string s("12345asdf"); string a=s.substr(0,4); //获得字符串s中 从第0位开始的长度为4的字符串 cout#includeusing namespace std;main(){ string str1, str2 = "War and Peace"; str1.assign( str2, 4, 3 ); //str2 字符串的第4个字符位置开始赋值给str1,长度为 阅读全文
posted @ 2013-04-08 20:11 Felix_F 阅读(269) 评论(0) 推荐(0)
摘要: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;//typedef long long LL;//typedef __int64 LL;//typedef long double DB;//typedef unisigned __int64 LL; 阅读全文
posted @ 2013-04-06 13:33 Felix_F 阅读(187) 评论(0) 推荐(0)
摘要: 就算是水题了...因为K比较大所以在加起来的时候用分治矩阵快速幂也是用分治的思想所以就是分治+分治的一个水题了...做这个题主要是为了自己写个模板防止以后出类似的题傻逼调试不出来...#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;//typede 阅读全文
posted @ 2013-04-03 16:04 Felix_F 阅读(148) 评论(0) 推荐(0)