摘要:
原文链接:http://www.cnblogs.com/DrunBee/archive/2012/09/05/2672546.html题意:给你一个正整数N,确定在1到N之间有多少个可以表示成M^K(K>1)的数。我们可以由n^(1/p),知道指数为p的有多少个数。通过观察,可以发现若一个数可以表示成x^(k*t),则可以表示成(x^k)^t。因此指数必然为素数。枚举素数便可以得到指数为p的个数,但是可能出现重复,例如:x^3=y^5,其中x=t^5,y=t^3。运用容斥原理,设a[i]表示指数为第i个素数的个数,那么答案等于满足一个的,减去两个的,加上三个的……由于2^60>10 阅读全文
posted @ 2013-10-22 17:08
西芒xiaoP
阅读(426)
评论(0)
推荐(0)
摘要:
题目大意:给定n(3#include #include using namespace std;struct point{ double x,y;};point p[50010],s[50010];bool mult(point sp,point ep,point op){ return (sp.x-op.x)*(ep.y-op.y)>=(ep.x-op.x)*(sp.y-op.y);}bool operator =0; i--) { while(top!=len&&mult(pnt[i],res[top],res[top-1])) top--; ... 阅读全文
posted @ 2013-10-22 15:03
西芒xiaoP
阅读(266)
评论(0)
推荐(0)
摘要:
原文链接:http://www.cnblogs.com/devymex/archive/2010/08/09/1795392.htmlC++/STL实现:#include #include #include #include using namespace std;//二维点(或向量)结构体定义#ifndef _WINDEF_struct POINT{ int x; int y;};#endiftypedef vector PTARRAY;//判断两个点(或向量)是否相等bool operator==(const POINT &pt1, const POINT &pt2){ . 阅读全文
posted @ 2013-10-22 14:14
西芒xiaoP
阅读(577)
评论(0)
推荐(0)

浙公网安备 33010602011771号