自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 poj 1961

KMP next 数组实际上就是最长的i 使得的str[1~i] = str[n-i+1~n]#include #include #include #include using namespace std;int next[1000010];void COMPUTE_PREFIX_FUNCTION(char P[], int m){   

2015-01-31 23:06:47 340

原创 E - Vasya and Polynomial

如果a == b == t != 1, 那么就是两个解  p(x) = a, p(a) = a那么通过这种情况可以得知如果 t != a, a == b的时候 只有一个解 p(x) = a;如果 a == b == t == 1    inf    题中强调 所有的系数都非负, 那么 p(t) = a ,当 t != 1 时候, 系数之和一定小于 a ,       证明  如果

2015-01-31 19:42:02 327

原创 D - Vasya and Chess

猜的。。不知道怎么证明#include #include #include #include using namespace std;int main(){    int n;    while(scanf("%d",&n) != EOF)    {        if(n%2)         printf("black\n");

2015-01-31 13:28:15 478

原创 Vasya and Basketball

#include #include #include using namespace std;int num1[211111];int num2[211111];int num[411111];long long res1, res2;long long ans1, ans2;int n, m;int main(){    w

2015-01-31 12:14:05 415

原创 poj 3386

分情况讨论,因为有可能一个连续的地方被分割开, #include#include#include#includeusing namespace std;#define MAXN 100100int num2[MAXN],num[MAXN];int dp[MAXN][100];void RMQ(int n){    int i,j,

2015-01-28 22:08:38 368

原创 poj 3221

dfs + 树状数组单点更新加上区间求和很容易想到线段树, 但是怎么样去构建数据是一个难点,。。开始想了好久也没相同, 其实我们可以做一个映射把无顺序的图映射成一个有序的点阵列, 然后再用树状数组去求具体的映射就是通过一个DFS, 扫一遍, 这时候需要两个数组STA, END, 分别存放子树的开始节点的序号和结束节点的序号, 而且STA一定是其本身这样我们的节点序号也有了,子数的范

2015-01-28 20:51:42 323

原创 poj 1201

查分约束**要注意查分约束的隐含条件, 然后加一个源点,终点,用bellman_ford 或者 sfpa   Poj 1201  大致题意:给出n个闭区间[ai,bi],每个区间对应一个ci,表示集合Z在区间[ai,bi]内ci     个相同元素,问集合Z至少有几个元素。分约束的思想:可以肯定的是s[bi]-s[ai-1]>=ci; 为什么要ai-1,是因为ai也

2015-01-27 22:35:56 290

原创 zoj 1456

#include#include#include#include#include#include#define N 1000050#define INF 1000000001using namespace std;int d[106][106];int pre[106][106];int a[106];int main() { int i,j,k,n; while(

2015-01-27 13:41:36 412

原创 POJ 1845

要用一些定理和公式(1)   整数的唯一分解定理:      任意正整数都有且只有一种方式写出其素因子的乘积表达式。      A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均为素数(2)   约数和公式:对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)有A

2015-01-25 21:34:58 224

原创 poj 3292

打表#include #include #include #include using namespace std;#define MAXN 1111111int H[MAXN+1];void init(){    memset(H, 0,sizeof(H));    //+4确保每个数都是H-PRIME    for( int i = 5; i

2015-01-25 16:56:27 271

原创 poj 2635

好久之前看过的一道题,不过一直没有什么思路, 然后突然想起来, 看了下解题报告, 真的很佩服他们  10^100太大我们就改成用1000进制存的, 然后用同余模定理#include #include #include #include #include using namespace std;int knum[1111];char num[1111];

2015-01-25 14:43:38 308

原创 poj 1026

置换群的问题 先求去各个置换群及其长度, 然后看取模后的置换就好了, 长度为len的置换群置换len次相当于没置换#include #include #include #include #include using namespace std;#define MAXN  220int vis[MAXN];int len[MAXN], cnt =

2015-01-25 11:03:26 306

原创 poj 3270

组合数学, 置换群分析:原交换问题相当于一个置换群,因此可以分解成s个不相交循环的并,又因为每个循环内的交换次数一定,我们选择循环中最小的一个数与其它数交换,代价最小。进而考虑到利用所有数中最小的一个m参与其他循环中的交换可能更优,加上这一点判断,问题得以解决。 Cost = sum + Σ(i-> 1~s) min{(ki - 2)*ti, ti+ (k1+1)m};#i

2015-01-24 23:12:56 302

原创 POJ 2409

裸的polya定理#include #include #include #include #include using namespace std;int gcd( int a, int b){    if(b == 0)        return a;    return gcd(b, a%b);}int n, m;

2015-01-24 16:17:31 343

原创 Necklace of Beads

裸的Polya定理, 不过要注意一点就是N = 0 的情况#include #include #include #include #include using namespace std;int gcd( int a, int b){    if(b == 0)     return a;    return gcd(b, a%b

2015-01-24 13:47:38 467

原创 Amr and Pins

#include #include #include #include using namespace std;int main(){    double r, x, y, xx, yy;    while(scanf("%lf %lf %lf %lf %lf",&r, &x, &y, &xx, &yy) !=EOF)    {       

2015-01-24 11:18:17 325

原创 Amr and Music

#include #include #include #include using namespace std;#define MAXN 1111int w[111];bool vis[111][MAXN];int dp[MAXN] , ans[111];int path[111][MAXN];int main(){    int n, k;

2015-01-24 11:17:46 365

原创 POJ 3122

也是一个二分的题, 然后学了一个新招, 控制循环次数来控制二分, #include #include #include #include #include using namespace std;#define MAXN 11111#define PI  acos(-1.0)#define eps 1e-8double pie[MAXN];dou

2015-01-23 22:13:14 375

原创 poj 1905

角度→弧度公式 2* θr = s   三角函数公式  sinθ= 1/2*L/r     勾股定理  r^2 – ( r – h)^2 = (1/2*L)^2逆向思维解二元方程组:要求(1)式的h,唯有先求r但是由于(2)式是三角函数式,直接求r比较困难很显然的二分查找了。。。。。#include #include #include

2015-01-22 22:52:46 335

原创 poj 3258

最小值最大, 也是二分#include #include #include #include #include using namespace std;#define MAXN 55555#define INF 1111111111int dis[MAXN];int l, r, ll;int n, m, ans;int cal

2015-01-21 23:17:30 298

原创 poj 3272

最大值最小一般都是二分#include #include #include #include #include using namespace std;#define MAXN 111111int num[MAXN];int  l, r;int n, m;int cal(int sum){    int res = 0, cnt =

2015-01-21 22:07:39 335

原创 poj 1408

#include #include #include #include #include using namespace std;struct Point{    double x, y;    Point () {};    Point(double a, double b)    {        x = a;       

2015-01-21 18:24:12 314

原创 POJ 2013

#include #include #include #include #include using namespace std;#define eps 1e-8#define INF 0x1f1fstruct Cell{    double x, y, z, r;} num[111];double getdis(Cell a, Ce

2015-01-21 14:29:50 367

原创 poj 1039

实践告诉我们有小数的时候选择C++ G++90%会挂#include #include #include #include #include using namespace std;#define eps 1e-8struct Point{    double x, y;    Point(){};    Point (double

2015-01-21 10:58:56 322

原创 POJ 1113

我有白痴了原来强制类型转换不会自动四舍五入只会保留整数部分,,,,,好吧我是白痴#include #include #include #include #include #include using namespace std;#define MAXN 1111#define PI 3.1415926struct Point{

2015-01-20 15:27:49 295

原创 Mr. Kitayuta, the Treasure Hunter

#include #include #include using namespace std;#define MAXN 30100int dp[MAXN][510];int num[MAXN];int main(){    int n, m, val;    while(scanf("%d %d", &n, &m) != EOF)

2015-01-19 22:35:20 461

原创 Mr. Kitayuta's Colorful Graph

#include #include #include #include using namespace std;#define MAXN 111struct Edge{    int u, v,co;    int next;}E[MAXN int head[MAXN int cnt ,ans, s, e;bool vis[MAXN

2015-01-19 22:34:04 340

原创 Mr. Kitayuta's Gift

#include #include #include #include using namespace std;char s[15], res[15];char ans;int pos;bool solve(char *str ,int len){    bool flag = false;    for(int i = 0; i     {

2015-01-19 22:33:35 404

原创 poj 1019

#include #include #include #include #include using namespace std;#define MAXN 32270long long  a[MAXN];long long  s[MAXN];//int会REvoid init(){    a[0] = s[0] = 0;    for

2015-01-19 10:20:00 327

原创 POJ 1850

#include #include #include #include using namespace std;int num[33][33];void init(){    memset(num, 0, sizeof(num));    for(int i = 0; i      num[i][0] = num[i][i] = 1;

2015-01-18 19:35:02 375

原创 POJ 3252

因为bit数组开小了神WA了无数遍#include #include #include #include using namespace std;int bit[33];int dp[32][32];void init(){    memset(dp, 0, sizeof(dp));   //dp[i][j] 长度为 i,

2015-01-18 17:21:59 290

原创 POJ 3347 Kadj Squares

因为数据比较少暴力就行, 数据多的话可以考虑线段树, 题解: 考虑都到整数的问题,把边长扩大根号2倍, 然后画画图就能推算出怎样根据之前的矩形得到当前矩形的左右起点           然后我们考虑相交的情况。 相交无非两种情况 : 1 : 前面的压着后面的   2: 后面的压着前面的         然后我们把覆盖的地方去掉,最后扫一遍就是答案#include

2015-01-17 18:49:36 273

原创 POJ - 1696 Space Ant( 极角排序)

#include #include #include #include #include using namespace std;#define maxn 20000int top = 2;struct Point{    double x,y,len;    int id;} Pt[maxn],Stack[maxn],Point_A;

2015-01-16 18:56:31 342

原创 C - Misha and Forest

感觉CF的题都是蛮巧妙的,题里 的每一句话都不是白给的, 就像这道题, 他说图里没有环, 就说明了两点, 1  -> 一定有度为一的节点     2->所有度的和一定是偶数, 确sum/2就等于变数  然后我们可以从 度为1 的节点入手。 它的sv一定是他临近节点的序号, 通过这个我们可以慢慢把所有节点的边都找出来#include #include #include #

2015-01-16 11:42:22 327

原创 B - Misha and Changing Handles

#includeusing namespace std;#includestring old[1001];string new_name[1001];int main(){    int coun=0;    int n;    int t;    cin>>n;    t=n;    while(n--)    { 

2015-01-16 00:33:55 612

原创 poj 1414

没有理解好相交什么意思WA无数次       判断线段是否和矩形相交。而所谓“相交”,在计算几何的角度来看,就是线段有一点在矩形内或矩形上。判断的方法如下:      判断线段的两端点是否在矩形内,若是,则线段在矩形内。      判断线段是否与矩形相交,即是否和矩形的四条边中的任意一条边相交(规范相交和不规范相交都算)#include #include #in

2015-01-16 00:00:36 407

原创 poj 1556The Doors

给一个房间,房间的边都是固定的,房间内有一些墙, 每面墙上有两个门, 起点是(0,5) 终点是(5,0), 求起点到终点的最短路径( 遇到墙从门走) 解题思路:  想到怎么 建图就好做了                       N条边则有4*N+1个顶点, 我们所要求的就是怎样连接这些定点使得起点到终点的距离最小                       因为N最多是10

2015-01-15 12:23:28 370

原创 POJ 1066 Treasure Hunt

题意:  线段与线段相交会形成密室, 求边界上到宝藏所经过的最少线段数N , 则答案就是N+1            思路: 暴力枚举,我们知道, 起点一定是边界上某一点,而终点一定是宝藏。             因为有 doors should only be blasted at the midpoint of the wall of the room being ent

2015-01-06 23:58:33 295

原创 New Year Book Reading

#include #include #include #include #include using namespace std;int w[555];int ord[1111];vector sta;int main(){    int n, m;    while(scanf("%d %d",&n, &m) != EOF)    {

2015-01-05 21:46:21 610

原创 POJ 2653 Pick-up sticks

开始在实验室入手写的时候就在想会不会TLE,结果真的TLE 开始的想法是一边输入一边找木棍i可以覆盖的他前面的木棍j,如果他可以覆盖掉前面的那vis[i] = true, 开始我还天真的以为是O(N^2)的时间复杂度。可是这样是时间复杂度是 接近 O(N^3)的, 果断TLE了 那我们换一种思路, 当前木棍是I,我找它后面的可以覆盖它的木棍J,如果找到了就直接放弃它,找下一根木棍,如果没有

2015-01-05 00:00:48 378

于计算机击键动力学的用户身份鉴别

于计算机击键动力学的用户身份鉴别于计算机击键动力学的用户身份鉴别于计算机击键动力学的用户身份鉴别于计算机击键动力学的用户身份鉴别

2018-04-10

计算广告 pdf

计算广告 良心之所

2017-11-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除