随笔分类 -  HDU

1 2 3 4 5 ··· 12 下一页
摘要:1 /* 2 几何 3 求给定三角形的外接圆圆心 4 方法:求解二元方程组 5 */ 6 #include 7 #include 8 #include 9 #include10 const double pi = acos(-1.0);11 const double eps = 1e-8;12 struct Point{13 double x,y;14 };15 struct Circle{16 Point center;17 double r;18 };19 Point a,b,c,tp;20 Circle cc;21 22 double dis( Point ... 阅读全文
posted @ 2013-12-07 21:35 xxx0624 阅读(258) 评论(0) 推荐(0) 编辑
摘要:题意:给定N个点,每个点有初始位置和初始速度。问:在哪个时刻 使得所有的点的最大距离值最小。分析:一开始枚举两两之间的最大值,然后在最大值中求一个最小值。。。(WA:题意严重理解不清。。)由两点之间的距离公式(与T一个系数有关)可知,这个公式是典型的抛物线,因此可以进行三分查找答案,正解! 1 /* 2 wa 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using n... 阅读全文
posted @ 2013-12-03 21:15 xxx0624 阅读(279) 评论(0) 推荐(0) 编辑
摘要:经典的信封装信问题f[ n ] = ( n-1 ) * ( f[ n-1 ]+f[ n-2 ] ) 1 #include 2 #include 3 #include 4 typedef long long int64; 5 const int maxn = 22; 6 int64 a[ maxn ]; 7 8 void init(){ 9 a[ 0 ] = a[ 1 ] = 0;10 a[ 2 ] = 1;11 for( int i=3;i<=20;i++ ){12 a[ i ] = ( i-1 )*(a[ i-2 ] + a[ i-1 ]);13 ... 阅读全文
posted @ 2013-11-25 21:35 xxx0624 阅读(228) 评论(0) 推荐(0) 编辑
摘要:枚举中间可能出现的天气 1 #include 2 #include 3 #include 4 const int maxn = 1005; 5 double mat[ 5 ][ 5 ]; 6 7 void solve( int L,int R,int n ){ 8 double ans[ 5 ],tp[ 5 ]; 9 double res = 0;10 for( int i=1;i<=n;i++ ){11 if( i==1 ){12 ans[ 1 ] = mat[ L ][ 1 ];13 ans[ 2 ]... 阅读全文
posted @ 2013-11-20 11:57 xxx0624 阅读(216) 评论(0) 推荐(0) 编辑
摘要:给定n和m个数,询问在小于n的数中 有多少个能整除m中的某个数。。容斥原理。PS:注意64位整数! 1 /* 2 容斥原理 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 typedef long long int64;10 const int maxn = 24;11 int64 num[ maxn ];12 int64 ans;13 int n, m;14 15 int gcd( int a,int b ){16 int r;17 while( b ){18 ... 阅读全文
posted @ 2013-11-13 22:27 xxx0624 阅读(332) 评论(0) 推荐(0) 编辑
摘要:题意:给N个点,求最多有多少个点在同一直线上方法一:求出所有能形成的直线,两两比较,统计最多有多少条重合。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 typedef long long int64; 9 const int64 maxn = 701; 10 const int64 maxm = 490005; 11 const int64 inf = -123456789; 12 struct Point64{ 13 int x,... 阅读全文
posted @ 2013-11-07 20:39 xxx0624 阅读(340) 评论(0) 推荐(0) 编辑
摘要:用cos sin各种乱搞之后 求出一个公式。。但是怕精度损失厉害,还是暂且贴个公式的,copy别人的。。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(){ 7 double a,b,c,m,n,l,v; 8 while(scanf("%lf%lf%lf%lf%lf%lf", &a, &c, &b, &n, &l, &m)!=EOF){ 9 v=(double)sqrt((4.0*a*a*b*b*c*c-a*a*(b*b+c*c-m*m 阅读全文
posted @ 2013-10-31 00:29 xxx0624 阅读(305) 评论(0) 推荐(0) 编辑
摘要:大水题。。求集合的并 1 /* 2 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 typedef long long int64; 16 //typedef __int64 int64; 17 typedef pair PII; 18 #define MP(a,b) make_... 阅读全文
posted @ 2013-10-30 19:42 xxx0624 阅读(270) 评论(0) 推荐(0) 编辑
摘要:题意简单预处理之后会发现符合条件的数最多781个。。。所以打表。。 1 /* 2 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 typedef long long int64; 16 //typedef __int64 int64; 17 typedef pair PII; 1... 阅读全文
posted @ 2013-10-30 19:23 xxx0624 阅读(534) 评论(0) 推荐(0) 编辑
摘要:bfs思路:三维标记状态 && 处理好 - | 和时刻的关系即可 1 /* 2 bfs 3 思路:三维标记状态 && 处理好 - | 和时刻的关系即可 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 using namespace std; 16 typedef long long int64; 17 //typedef __int6... 阅读全文
posted @ 2013-10-30 18:41 xxx0624 阅读(503) 评论(0) 推荐(0) 编辑
摘要:bfs+状态压缩思路:用2进制表示每个钥匙是否已经被找到。、 1 /* 2 bfs+状态压缩 3 思路:用2进制表示每个钥匙是否已经被找到。 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 using namespace std; 16 typedef long long int64; 17 //typedef __int64 int... 阅读全文
posted @ 2013-10-29 21:37 xxx0624 阅读(295) 评论(0) 推荐(0) 编辑
摘要:题意简单:去掉最小生成树的某一条边并补上一条,求MaxVal思路:贪心(借鉴Yamidie的思路。。。)分别求出最小生成树和次最小生成树,再在这两棵树上求最小生成树 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn = 1015; 8 const int maxm = maxn*maxn; 9 const int inf1 = 0x3f3f3f3f; 10 const double inf2 = 9999999999; 11 12 st... 阅读全文
posted @ 2013-09-25 00:09 xxx0624 阅读(306) 评论(0) 推荐(0) 编辑
摘要:简单的模拟题。暴力枚举 1 /* 2 模拟 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 using namespace std;15 typedef long long int64;16 //typedef __int64 int64;17 typedef pair PII;18 #define MP(a,b) make_pair((a),(b)) 19 const int inf = 0x3f3f3f3f 阅读全文
posted @ 2013-09-14 18:26 xxx0624 阅读(192) 评论(0) 推荐(0) 编辑
摘要:费马小定理题意:求s1+s2+s3+...+sn;si表示n划分i个数的n的划分的个数,如n=4,则s1=1,s2=3 利用隔板定理可知,就是求(2^n-1)%mod-----Y 现在已知 (2^mod-1)%mod = 1,所以 Y = 2^( (n%(mod-1) -1 +mod)%mod )%mod 证明( 定理:a^(p-1)==1%p,gcd(a,p)==1 ): (http://www.cnitblog.com/luckydmz/archive/2008/06/03/39458.html) 构造模p的完全剩余系P = {0,1, 2, … ,p-1}, 因为gcd(a, p) = 阅读全文
posted @ 2013-09-07 10:46 xxx0624 阅读(519) 评论(0) 推荐(0) 编辑
摘要:ac自动机 模板题 1 /* 2 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 typedef long long int64; 16 //typedef __int64 int64; 17 typedef pair PII; 18 #define MP(a,b) make_pair((a),(b)) 19 const int m... 阅读全文
posted @ 2013-08-25 22:46 xxx0624 阅读(316) 评论(0) 推荐(0) 编辑
摘要:见代码。 1 /* 2 凸包(稳定凸包) 3 题意:给出一些点,这些点要么是凸包的顶点要么是边上的。 4 证明每条边上都至少有3个点。 5 */ 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 using namespace std; 17 typedef long long int64; 18 //typedef __int64 int64; 19 typedef pair PII; 2... 阅读全文
posted @ 2013-08-18 21:25 xxx0624 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 贪心。 3 题意:给定一些点 一些边 点和边都有价值。现在A B 选点。求A-B的maxVal 4 思路:分割边。边的1/2分给两个端点。 5 如果这两个点被同一个人取,则ok;否则 做减法也行,对题意无影响。 6 */ 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 #include16 #include17 using namespace std;18 typedef long long int64;19 //typedef __int... 阅读全文
posted @ 2013-08-16 22:18 xxx0624 阅读(196) 评论(0) 推荐(0) 编辑
摘要:见Goolglehttp://zh.wikipedia.org/zh-cn/%E6%95%B4%E6%95%B8%E5%88%86%E6%8B%86 1 /* 2 数学公式 3 ans[i]:i可以有ans[i]种方法得到。(由1-i的数相加) 4 */ 5 #include 6 typedef long long int64; 7 const int maxn = 100000; 8 const int64 mod = 1000000007; 9 int64 ans[ maxn+15 ];10 void init(){11 int64 flag,k;12 ans[ 0 ] =... 阅读全文
posted @ 2013-08-15 20:26 xxx0624 阅读(282) 评论(0) 推荐(0) 编辑
摘要:dp[i][j]:从前i个中挑出某些且cost不超过j的最大val。dp[i][j]:应该有1到i-1的dp[k][j-?]来更新!! 1 /* 2 DP 3 dp[i][j]:从前i个中挑出某些且cost不超过j的最大val。 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 using namespace std;16 typedef long long int64;17 //typedef __int64 阅读全文
posted @ 2013-08-13 21:18 xxx0624 阅读(191) 评论(0) 推荐(0) 编辑
摘要:思路是想到了一些 不过愣是没敢写。。。。。。。。。。。 1 /* 2 题意:给定一个整数n(2 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 typedef long long int64;14 //typedef __int64 int64;15 const int maxn = 105;16 const int inf = 0x7fffffff;17 const double pi=acos(-1.0);18 const doubl. 阅读全文
posted @ 2013-08-12 21:28 xxx0624 阅读(194) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 12 下一页