- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 2014 Multi-University Training Contest 4小记
1005typedef long long LL ;const LL mod = 1000000007LL ;const int maxn = 1<<11 ;LL dp[1002][maxn] , dp1[1002][maxn] , dp2[1002][maxn] ;int a[1002] ;int main(){ int n
2014-07-31 17:41:26 730 3
原创 2014 Multi-University Training Contest 3小记
1005char str[1000000000] ;int main(){ int n , i , j , no ; string s ; LL sum , a , t ; char ch ; while(scanf("%d" , &n) != EOF){ getchar() ;
2014-07-29 17:36:00 565
原创 Codeforces Round #258 (Div. 2) C, D
C typedef long long LL ;LL n , k , d1 , d2 ;LL A(LL a[4][4]){ return a[1][1]*a[2][2]*a[3][3] + a[1][2]*a[2][3]*a[3][1] + a[1][3]*a[2][1]*a[3][2] -
2014-07-26 22:50:40 565
原创 2014 Multi-University Training Contest 1小记
一个人注册两个账号,初始rating都是0,他每次拿低分的那个号去打比赛,赢了加50分,输了扣100分,胜率为p,他会打到直到一个号有1000分为止,问比赛场次的期望+50 => +1-思路:f(i, j)表示i >= j,第一个号i分,第二个号j分时候,达到目标的期望,那么可以列出转移为f(i, j) = p f(i', j') + (1 - p)f(i'' + j''
2014-07-22 23:51:12 494
原创 sgu 236 输出负环回路 367页
题意:给出一个有向图,每条边有一个权值和时间花费。如果图中无环,输出0,如果有环,找出一个最大的环,最大的意思是环上的权和 / 时间和 最大。如果存在负环,那么就是原式 tot(time)*k - tot(cost)
2014-07-18 22:22:19 918
原创 sgu 491 357页
对于 a*x+b*y=N的一个方程,给出N的值(1先枚举a再枚举x。对于每个a算出所有可能的b,然后对于b去重。最后便可得到所有的(a,b)对个数。
2014-07-18 15:49:20 534
原创 sgu479 构造 题库354
最后选择deconst int maxn = 208 ;int x[maxn][maxn] ;int n , m ;queue > q ;vector > ans ;int d[4][2] = {{-1,0} , {0 , -1} , {1 , 0} ,{0 , 1}} ;int can(int x , int y){ return 1 <= x && x
2014-07-18 14:36:17 902
原创 Codeforces Round #256 (Div. 2) C
n个木板,宽都为1 , 长为a1 ,a2 ,...an 。 刷子宽为1 , 可以
2014-07-18 10:35:18 419
原创 UVA 10888 km 题库61页
求最小值const int maxn = 108 ;int lx[maxn] , ly[maxn] ;int Left[maxn] ;int w[maxn][maxn] ;bool S[maxn] , T[maxn] ;int n ;bool match(int i){ S[i] = 1 ; for(int j =
2014-07-17 21:34:16 596
原创 ZOJ 3279 树状数组 题库221页
const int maxn = 100008 ;int x[maxn] , n ;int lowbit(int x){ return x & (-x) ;}void add(int i , int c){ while(i <= n){ x[i] += c ; i += lowbit(i) ; }
2014-07-17 15:07:28 531
原创 UVA 10617 dp 题库210页
给定一个字符串s,对s进行删除操作,使得剩下的子串是回文字符串,问最多有多少种这种子串。直接从题意切入:dp[i, j]表示区间[i, j]最多有多少个这样的子串。1. s[i] == s[j] 去掉s[i],则一个子问题就是dp[i+1, j],去掉s[j],另一个子问题就是dp[i, j-1]。 显然这两个子问题是会有重叠的,比如去掉s[i], s[j]的dp[i+1, j-1
2014-07-17 14:46:12 628
原创 POJ 2785 (交大题库203页)
求ai + bj + ck + dl = 0 的个数const int maxn = 4008 ;int a[maxn] , b[maxn] , c[maxn] , d[maxn] ;int x[maxn*maxn] ;int main(){ int i , j , k , t , s , n ; while(scanf("%d"
2014-07-17 10:31:42 642
原创 zoj 3278 二分 (题库203页)
比较简单 。typedef long long LL ;const int maxn = 100008 ;LL a[maxn] , b[maxn] , k , n , m ;int ok(LL x){ LL s = 0 , t ; for(int i = 1 ; i <= n ; i++){ int l = 1 , r
2014-07-17 10:01:54 743
原创 zoj 3203 三分
二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~ 如图,类似二分的定义Left和Right,mid =(Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Lef
2014-07-16 08:44:08 491
原创 C++常用细节
#include using namespace std;int main(){ char ch[100] ; string a ; while(gets(ch)){ istrstream t(ch) ; while(t>>a){ cout<<a<<endl ; } }
2014-07-14 16:48:40 471
原创 C++生成随机数
生成s#include using namespace std;int main(){ srand( (unsigned int) time(NULL) ) ; for(int i = 0 ; i < 100 ; i++) printf("%d\n" , rand()%10 + 1) ; return 0;}
2014-07-06 11:03:08 573
原创 hdu 3629
如果四个点不能组成凸四边形,则必然是其中三个点组成一个三角形,另一个点在该三角形内部。于是我们可以O(n)枚举一个点作为内部中心,试图从其他的点里选出三个来,组成三角形把它包围住,看看有多少种可能的选择。继续观察发现,如果三个点不能圈住中心点,则必然是存在一条通过中心点的直线,使得这三点都在直线的同侧。于是我们可以把所有点(除了中心点)按极角排序,然后线性转圈扫描一下就可以统计出来了。总的复杂度是
2014-07-03 19:45:05 790
原创 HDU 1174 3维点到直线距离
若向量a=(a1,b1,c1),向量b=(a2,b2,c2), 则 向量a×向量b= | i j k | |a1 b1 c1| |a2 b2 c2| =(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1) (i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)。
2014-07-02 16:52:59 477
原创 hdu 1115 多边形重心
const double eps = 1e-8 ;double sig(double x){ if(fabs(x) < eps) return 0 ; return x > 0 ? 1 : -1 ;}double add(double x , double y){ if(fabs(x+y) < eps*(fabs(x) + fabs(y
2014-07-02 15:49:43 526
原创 hdu 1077 过a ,b2点确定单位圆圆心
const double eps = 1e-8 ;double sig(double x){ if(fabs(x) < eps) return 0 ; return x > 0 ? 1 : -1 ;}double add(double x , double y){ if(fabs(x+y) < eps*(fabs(x) + fabs(y
2014-07-02 15:07:01 516
原创 hdu 3879 最大获利问题
一个图 给n个点m条边(u,v,w),每个点和边有相应的权值,若花费了2点的权值就可以得到2点间的边的权值,问可能得到的最大获利。
2014-07-01 21:53:50 542
原创 hdu 1733 最大流sap
给定一个矩阵,'.'表示空位,'X'表示人,'#'表示墙,'@'表示门,每分钟每个位置至多只能站一个人,人不能穿越墙,人能从门中出去。每个人每分钟只能上下左右移动一步,问最少需要多少时间让所有的人出去。//
2014-07-01 19:42:25 544
原创 POJ 3449 判断多边形与多边形是否相交
const double eps = 1e-10 ;double add(double x , double y){ return fabs(x + y) < eps * (fabs(x) + fabs(y)) ? 0 : x+y ;}struct Point{ double x , y ; Point(){} Point(d
2014-07-01 14:00:10 1043
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人