青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

巢穴

about:blank

#

P2352

為樹狀樹組量身打造的題...
不過我是線段樹..

#include <iostream>
#include 
<stdio.h>
using namespace std;
const int MAXN=32005;
struct node
{
 
int l,r;
 
int d;
}
;
node t[MAXN
*4];
int ans[MAXN];
void build(int l_,int r_,int p)
{
 t[p].l
=l_;
 t[p].r
=r_;
 t[p].d
=0;
 
if (l_!=r_)
 
{
  build(l_,(l_
+r_)/2,p<<1);
  build((l_
+r_)/2+1,r_,(p<<1)+1);
 }

}


int find(int r_,int p)
{
    
if (t[p].r<=r_) return t[p].d;
    
int l=t[p].l;
    
int r=t[p].r; 
    
int sum=0;
    
if (r_<=(l+r)/2) sum+=find(r_,p*2);
       
else sum+=t[p*2].d+find(r_,p*2+1);
    
return sum;
}

void insert(int x,int p)
{
    
int l=t[p].l;
    
int r=t[p].r;
    t[p].d
++;
    
if (l==r) return;
    
if (x<=(l+r)/2) insert(x,p*2); else insert(x,p*2+1);  
}

int n;
int main()
{
    memset(ans,
0,sizeof(ans));
    build(
0,MAXN,1);
    cin
>>n;
    
for (int i=1;i<=n;i++)
    
{
     
int x,y;
     scanf(
"%d %d",&x,&y);
     ans[find(x,
1)]++;
     insert(x,
1);
    }

    
for (int i=0;i<n;i++)
     cout
<<ans[i]<<endl;
  
//  system("pause");
    return 0;
}

posted @ 2009-10-15 18:08 Vincent 閱讀(178) | 評論 (0)編輯 收藏

P2418

可用2叉樹.可用快排掃描統計,可直接用map....

#include <map>
#include 
<string>
#include 
<stdio.h>
using namespace std;


int main()
{
        map 
< string , int> tree;
        
char temp[50] ;
        
string str;
        
int total=0;
        
while(gets(temp))
        
{
                str
=temp;
                tree[aaa]
++;
                total
++;
        }

        map
<string,int>::iterator itr;
        
for(itr = tree.begin(); itr != tree.end(); itr++)
        
{
                cout
<<itr -> first<<" ";
                printf(
"%.4lf\n",100*double(itr -> second)/double(total));
        }

        
return 0;
}

posted @ 2009-10-15 12:07 Vincent 閱讀(136) | 評論 (0)編輯 收藏

P1001

orz.啊..orz..
就是一個普通的高精度..注意下格式的細節就可以..
- -我用的dev c++..忘寫#include <string>編譯過了..
然后提交的時候不知道..就編譯錯誤...
然后把重載運算符改成了普通方法..
然后把class改成了struct..
總只有點暈..
后來才發現是少寫了#include......

#include <iostream>
#include 
<string>
#include 
<math.h>
using namespace std;
const int MAXN=10000;
struct Decimal 
{
  
private:
          
int len;//總長度 
          int point_pos;//小數點位置 
          int number[MAXN];//具體數 
  public:
         Decimal();
         Decimal(
string);
         
void print();
         Decimal ch(Decimal);
}
;
Decimal::Decimal()
{
}

Decimal Decimal::ch(Decimal x)
{
 
int num[MAXN],n_len=0;
 memset(num,
0,sizeof(num));
 n_len
=x.len+Decimal::len;
 
for (int i=1;i<=x.len;i++)
 
{
  
for (int j=1;j<=Decimal::len;j++)
  
{
   num[i
+j-1]+=x.number[i]*Decimal::number[j];
   num[i
+j]+=num[i+j-1]/10;
   num[i
+j-1]%=10;  
  }

 }

 
int point_pos=x.point_pos+Decimal::point_pos;
 
if (num[n_len]==0) n_len--;
 Decimal result;
 result.len
=n_len;
 result.point_pos
=point_pos;
 
for (int i=1;i<=n_len;i++)
     result.number[i]
=num[i];
 
return result;
}


Decimal::Decimal(
string x)
{
 
 
int i=x.length();
 
int sign=0;
 
for (int j=0;j<x.length();j++)
     
if (x[j]=='.') sign=1;
 
int point_pos=0;
 
int len=i-sign;

 i
=len;
 
for (int j=0;j<x.length();j++)
 
{
     
if (x[j]=='.') point_pos=i;
     
if (x[j]<='9'&&x[j]>='0')
     
{
      number[i
--]=x[j]-48;
      
//cout<<number[i]<<endl;
     }

 }

 Decimal::point_pos
=point_pos;
 Decimal::len
=len;
}


void Decimal::print()
{

 
int pe=1;
 
while (number[pe]==0&&pe<=point_pos) pe++;
 
int p=len;
 
while (number[p]==0&&p>point_pos&&point_pos>pe) p--;
 
//cout<<pe<<endl;
 for (int i=p;i>=pe;i--)
 
{
  
if (point_pos==i) cout<<".";
  cout
<<number[i];
 }

 cout
<<endl;
}

int main()
{

    
string x;
    
int n;
    
    
while(cin>>x>>n)
    
{
     Decimal d(x);
    
// d.print();
     Decimal result("1.0");
   
//  result.print();
     for (int i=1;i<=n;i++)
     
{
      result
=result.ch(d);
     }

     result.print();
    }

    system(
"pause");
    
return 0;
}

posted @ 2009-10-14 22:34 Vincent 閱讀(224) | 評論 (0)編輯 收藏

P3349

hash..
tle了2次都沒有想起來是我用了輸入輸出流的原因..
后來看了討論才想起來...
呃.這題代碼寫的有點orz
#include <iostream>
#include 
<stdio.h>
using namespace std;
const int MAXN=100000;
const long mod=999991;
int n;
long hash[mod];
long c[7];
int len=-1;
struct node
{
  
long c[7];
  
long son;
}
;
bool isFind=false;
node list[MAXN];
int p[13];
void find_node(long x)
{
 
for (int i=1;i<=6;i++)
 
{
  
int count=0;
  
for (int j=i;j<=i+6-1;j++)
  
{
   
if (p[j]==list[x].c[j-i+1]) count++;
  }

  
if (count==6)
  
{
    isFind
=true;
    
return;
  }

  count
=0;
  
for (int j=i;j<=i+6-1;j++)
  
{
   
if (p[j]==list[x].c[6-(j-i+1)+1]) count++;   
  }

  
if (count==6)
  
{
    isFind
=true;
    
return;
  }

 }

 
 
if (list[x].son!=-1) find_node(list[x].son);
 
else
 
{
     len
++;
     list[x].son
=len;
     list[len].son
=-1;
     
for (int i=1;i<=6;i++)
     
{
        list[len].c[i]
=c[i];
     }

     
return;
     
 }

 
}

void find(long x)
{
     
if (hash[x]==-1)
     
{
       len
++;
       hash[x]
=len;
       list[len].son
=-1;
       
for (int i=1;i<=6;i++)
       
{
        list[len].c[i]
=c[i];
       }

       
return;
     }

    
// cout<<x<<endl;
     for (int i=1;i<=6;i++)
       p[i]
=c[i];
     
for (int i=7;i<=12;i++)
       p[i]
=c[i-6];
     find_node(hash[x]);
}

int main()
{
    scanf(
"%ld",&n);
    
for (int i=0;i<mod;i++)
        hash[i]
=-1;
   
// memset(hash,-1,sizeof(hash));
    for (int i=1;i<=n;i++)
    
{
        
long ans=0;
        
for (int j=1;j<=6;j++)
        
{
            scanf(
"%ld",c+j);
            ans
+=c[j];
        }

        
long x=ans%mod;
      
//  cout<<x<<endl;
        find(x);
        
    }

    
if (isFind) cout<<"Twin snowflakes found."<<endl;
    
else
        cout
<<"No two snowflakes are alike."<<endl;   
    
//system("pause");
    return 0;
    
}

posted @ 2009-10-13 21:28 Vincent 閱讀(155) | 評論 (0)編輯 收藏

P3481

     摘要: 裸treap...學會了刪除..orz.. #include <iostream>//#include <fstream>using namespace std;//ifstream fin("t3481.in");const int MAXN=100000;const int IN...  閱讀全文

posted @ 2009-10-13 16:23 Vincent 閱讀(95) | 評論 (0)編輯 收藏

NOI2004 cashier

     摘要: treap..有幾個地方寫的很尷尬...其實我沒寫過平衡樹...任何的平衡樹..所以我就把對于size的維護寫錯了..orz..然后我又把砍掉一棵子樹那部分寫錯了..我感覺這樣砍樹是會造成一定的不平衡的..但不平衡會很小.呃..其實也不能這么說..應該說..會造成不平衡..但這個不平衡帶給我的負擔不會高于我曾經的負擔..orz..貌似是這樣 #include <iostream&...  閱讀全文

posted @ 2009-10-13 11:27 Vincent 閱讀(263) | 評論 (0)編輯 收藏

P3020

2分圖
構圖
兩個集合是一樣的,都是所有的*號
如果某兩個*之間挨著,就連線
求最大匹配
可以輕易得出這個最大匹配把每個*都求了2遍
因此除以2,再加上未匹配的*,得解..
難點就是構圖..
事實上匹配,網絡流等的難點也就是構圖

#include <iostream>
//#include <fstream>
using namespace std;
//ifstream fin("t3020.in");
struct node
{
 
int x,y;
}
;
const int MAXN=401;
node edge[MAXN];
bool connect[MAXN][MAXN];
bool hash[MAXN];
int v[MAXN];
int n;
int h,w;
int len;

bool find(int x)
{
     
for (int i=1;i<=len;i++)
     
{
         
if (!connect[x][i]) continue;
         
if (!hash[i])
         
{
          hash[i]
=true;
          
if (v[i]==0||find(v[i]))
          
{
           v[i]
=x;
           
return true;
          }

         }

     }

     
return false;
}

int main()
{
    cin
>>n;
    
while(n--)
    
{
     cin
>>h>>w;
     len
=0;
     
for (int i=1;i<=h;i++)
      
for (int j=1;j<=w;j++)
      
{
       
char ch;
       cin
>>ch;
       
if ('*'==ch)
       
{
        len
++;
        edge[len].x
=i;
        edge[len].y
=j;
       }

      }

     
     
//init
     memset(connect,0,sizeof(connect));
     
for (int i=1;i<=len;i++)
      
for (int j=1;j<=len;j++)
      
{
       
if (i==j) continue;
       
if (1==abs(edge[i].x-edge[j].x)+abs(edge[i].y-edge[j].y))
          connect[i][j]
=true;
      }

     
     
//
     memset(v,0,sizeof(v));
     
int answer=0,ans=0;
     
for (int i=1;i<=len;i++)
     
{
      memset(hash,
0,sizeof(hash));
      
if (find(i)) answer++;
      
else
       ans
++;
     }

     cout
<<answer/2+ans<<endl;
    
// system("pause");
    }

    
return 0;
}


 

posted @ 2009-10-08 11:58 Vincent 閱讀(120) | 評論 (0)編輯 收藏

P3041

2分圖/匈牙利
第一遍寫疵了..
#include <iostream>
#include 
<fstream>
using namespace std;


const int MAXN=501;
int n,k;
bool edge[MAXN][MAXN];
bool hash[MAXN];
int v[MAXN];
bool find(int x)
{

     
for (int j=1;j<=n;j++)
     
{
      
if  (!edge[x][j]) continue;
      
if (!hash[j])
      
{
       hash[j]
=true;
       
if (v[j]==0||find(v[j]))
       
{
        v[j]
=x;
        
return true;
       }

      }

     }

     
return false;
}

int main()
{
    memset(edge,
0,sizeof(edge));
    

    cin
>>n>>k;
    
    
for (int i=1;i<=k;i++)
    
{
        
int x,y;
        cin
>>x>>y;
        edge[x][y]
=true;
    }

    
int count=0;
    
for (int i=1;i<=n;i++)
    
{
        memset(hash,
0,sizeof(hash));
        
if (find(i)) count++
    }

    cout
<<count<<endl;
  
// system("pause");
    return 0;
}

posted @ 2009-10-07 19:21 Vincent 閱讀(95) | 評論 (0)編輯 收藏

P1094

拓撲排序..
這個真是WA了n多次..orz..
總之就是有很多細節..因為結果的可能性太多..而樣例實在是只給了太少的可能性- -..

#include <iostream>
#include 
<queue>
#include 
<string>
using namespace std;
int n,m;
const int MAXN=27;
bool edge[MAXN][MAXN];
int d[MAXN];
int state;


void jude(int ix)
{
     state
=0;
     
string str="";
     
int count=0;
     queue
<int> q;
     
int u[MAXN];
     
for (int i=1;i<=n;i++)
     
{   
          u[i]
=d[i];
        
//  cout<<u[i]<<endl;
          if (0==d[i]) q.push(i);
     }

     
if (q.size()>1{state=3;}
     
while(q.size()>0)
     
{
      
int v=q.front();
      
int c_ount=0;
      
for (int i=1;i<=n;i++)
          
if (edge[i][v])
          
{
           u[i]
--;
           
if (0==u[i]) {c_ount++;q.push(i);}
          }

      
if (c_ount>1{state=3;}
      q.pop();count
++;str=char(v+64)+str;
     }

    
// cout<<count<<" "<<n<<endl;
     if (count<n)
     
{
      cout
<<"Inconsistency found after "<<ix<<" relations."<<endl;
      state
=2;return;
     }

     
if (state==3return;
     cout
<<"Sorted sequence determined after "<<ix<<" relations: ";
     cout
<<str<<"."<<endl;
     state
=1;return;
     
}

int main()
{
    
while(1)
    
{           
     memset(edge,
0,sizeof(edge));
     memset(d,
0,sizeof(d));
     state
=0;  
     cin
>>n>>m;     
     
if (0==n&&0==m) break;
     
char str[3];
     
for (int i=1;i<=m;i++)
     
{
     
         cin
>>str;
         
if (state==1continue;
         
if (state==2continue;
         
int x=int(str[0])-64;
         
int y=int(str[2])-64;
         
if (edge[x][y]) continue;
         d[x]
=d[x]+1;
         edge[x][y]
=true;
         jude(i);

     }

     
if (state==3) cout<<"Sorted sequence cannot be determined."<<endl;
     
    }

    
return 0;
}

posted @ 2009-10-07 18:25 Vincent 閱讀(151) | 評論 (0)編輯 收藏

P1258 By kruskal

kruskal..
/*
Kruskal
*/

#include 
<iostream>
using namespace std;

const int MAXN=101;
const int INF=0x7fffffff;
int n;
struct node
{
       
int x,y;
       
int value;
}
;
node edge[MAXN
*MAXN+1];
bool hash[MAXN];
int dist[MAXN];
int father[MAXN];
int len;
void sort(int l,int r)
{
     
int ll=l,rr=r,mid=edge[(l+r)/2].value;
     
while(ll<=rr)
     
{
      
while (edge[ll].value<mid) ll++;
      
while (edge[rr].value>mid) rr--;
      
if (ll<=rr)
      
{
       swap(edge[ll],edge[rr]);
       ll
++;
       rr
--;
      }

     }

     
if (ll<r) sort(ll,r);
     
if (rr>l) sort(l,rr);
}

int getFather(int x)
{
    
if (x==father[x]) return x;
    father[x]
=getFather(father[x]);
    x
=father[x];
    
return x;
}

void kruskal()
{
     sort(
1,len);
     
for (int i=0;i<n;i++)
         father[i]
=i;
     
int ans=0;
     
for (int i=1;i<=len;i++)
     
{
         
int fx=getFather(edge[i].x);
         
int fy=getFather(edge[i].y);
         
if (fx!=fy)
         
{
          ans
+=edge[i].value;
          father[fx]
=fy;
         }

     }

     cout
<<ans<<endl;
}


int main()
{
    
while(cin>>n)
    
{
     len
=0;
     
for (int i=0;i<n;i++)
      
for (int j=0;j<n;j++)
      
{
          
int x;    
          cin
>>x;
          
if (i==j) continue;
          node p;
          p.x
=i;p.y=j;p.value=x;
          edge[
++len]=p;
      }

     kruskal();
    }

    
    
return 0;
}

posted @ 2009-10-07 15:26 Vincent 閱讀(495) | 評論 (0)編輯 收藏

僅列出標題
共8頁: 1 2 3 4 5 6 7 8 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区视频在线观看2020 | 在线一区二区三区四区五区| 尤物在线精品| 国内成人精品2018免费看 | 在线欧美亚洲| 樱桃国产成人精品视频| 国模私拍视频一区| 在线观看日韩专区| 亚洲欧洲一区二区三区在线观看| 亚洲国产高清一区二区三区| 91久久线看在观草草青青| 亚洲精品乱码久久久久久日本蜜臀 | 久久人人爽国产| 久久综合色婷婷| 欧美xx视频| 最新中文字幕亚洲| 一二三区精品| 午夜精品亚洲一区二区三区嫩草| 欧美一区=区| 久久青青草原一区二区| 欧美sm视频| 欧美另类videos死尸| 欧美色欧美亚洲另类七区| 国产九九视频一区二区三区| 国产午夜久久| 激情伊人五月天久久综合| 最新中文字幕亚洲| 在线综合亚洲| 欧美一级视频| 久久久久久69| 欧美激情欧美激情在线五月| 欧美视频一区二区三区四区| 国产亚洲福利| 亚洲全黄一级网站| 香蕉久久一区二区不卡无毒影院 | 国产一区二区三区四区在线观看| 狠狠色伊人亚洲综合网站色| 亚洲免费av观看| 欧美一区二区三区日韩| 欧美高清视频一区| 亚洲永久在线| 你懂的亚洲视频| 国产精品三级久久久久久电影| 禁久久精品乱码| 亚洲私拍自拍| 欧美va天堂在线| 亚洲综合第一页| 美女脱光内衣内裤视频久久网站| 国产精品久久久久久久9999| 在线观看91精品国产麻豆| 亚洲视频在线一区观看| 毛片精品免费在线观看| 中文在线资源观看视频网站免费不卡| 久久久噜噜噜久久中文字免| 欧美日韩直播| 亚洲三级免费| 久久亚洲美女| 亚洲一区二区三区在线| 欧美大片免费| 国产亚洲精品aa午夜观看| 99精品国产在热久久婷婷| 久久久欧美精品sm网站| 一二三区精品| 欧美激情按摩在线| 尤物九九久久国产精品的分类| 亚洲欧美日韩国产| 亚洲精品一级| 免费视频一区二区三区在线观看| 国产精品视频99| 一区二区电影免费在线观看| 老鸭窝91久久精品色噜噜导演| 亚洲午夜视频在线| 欧美日本高清视频| 亚洲日本在线视频观看| 久久嫩草精品久久久精品一| 亚洲系列中文字幕| 欧美日本亚洲| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久五月婷婷| 午夜宅男欧美| 国产欧美日韩在线播放| 午夜亚洲伦理| 一区二区三区精品| 欧美日韩国产欧美日美国产精品| 亚洲国产一区二区三区a毛片| 久久久久在线观看| 香蕉久久夜色| 国产亚洲欧美一区二区| 性久久久久久久久| 亚洲天堂网在线观看| 欧美日韩精品在线播放| 亚洲久色影视| 亚洲精品久久嫩草网站秘色| 欧美sm视频| 亚洲免费成人av| 最新成人av在线| 欧美日韩国产成人在线| 日韩亚洲欧美综合| 欧美色精品在线视频| 日韩午夜三级在线| 亚洲激情在线观看| 欧美经典一区二区三区| 亚洲理论在线| 亚洲精品国精品久久99热| 欧美精品系列| 亚洲天堂av在线免费观看| 99pao成人国产永久免费视频| 欧美色图首页| 午夜亚洲伦理| 久久精品国产精品亚洲精品| 黑人中文字幕一区二区三区 | 欧美一区二区三区在线| 国产伦精品一区二区三区视频孕妇| 欧美一区观看| 久久久久成人精品| 亚洲国产另类精品专区| 亚洲国产视频a| 欧美日韩精品综合| 欧美一级午夜免费电影| 欧美专区在线观看| 亚洲国产合集| 亚洲精品日韩一| 国产精品久久久一区二区| 亚洲欧美国产高清va在线播| 亚洲欧美成人在线| 精品成人国产在线观看男人呻吟| 欧美成人第一页| 欧美日韩第一区| 欧美一区2区三区4区公司二百 | 午夜在线不卡| 久久国产直播| 亚洲人成高清| 亚洲图片在线| 91久久精品久久国产性色也91| 亚洲人成人一区二区在线观看| 亚洲国产精品久久久久婷婷884 | 欧美午夜精品久久久久久久 | 99精品国产福利在线观看免费| aa国产精品| 国产在线欧美| 亚洲区第一页| 国产欧美精品一区| 欧美激情一级片一区二区| 欧美日韩一视频区二区| 久久精品视频va| 欧美福利网址| 亚洲精品国产欧美| 国产精品美女主播| 另类图片国产| 欧美美女操人视频| 久久免费视频在线| 欧美三区不卡| 欧美bbbxxxxx| 国产日韩精品一区二区三区在线 | 麻豆freexxxx性91精品| 亚洲欧美日本国产专区一区| 久久精品综合| 亚洲专区欧美专区| 免费成人黄色片| 久久国产手机看片| 欧美日韩国产一区二区| 久久免费精品视频| 国产精品久久一卡二卡| 欧美福利一区二区| 国产午夜精品理论片a级大结局 | 久久精品在线| 午夜在线精品| 欧美区在线播放| 欧美大香线蕉线伊人久久国产精品| 国产精品自在线| 99视频精品| 亚洲精品韩国| 久久久免费av| 久久精品二区亚洲w码| 欧美日韩精品一二三区| 欧美高清在线视频| 一区二区亚洲精品国产| 亚洲在线观看视频网站| 一区二区高清| 欧美成人免费观看| 欧美大香线蕉线伊人久久国产精品| 国产欧美一级| 亚洲欧美国产日韩天堂区| 在线视频欧美一区| 欧美激情国产日韩精品一区18| 奶水喷射视频一区| 伊人激情综合| 欧美一区二区三区日韩视频| 午夜伦欧美伦电影理论片| 欧美日韩精品久久久| 亚洲国内精品| 亚洲三级电影在线观看 | 裸体素人女欧美日韩| 国产婷婷97碰碰久久人人蜜臀| 亚洲视频在线免费观看| 亚洲一二三区在线观看| 欧美日韩国产精品专区| 亚洲理论电影网| 99这里有精品| 欧美日韩高清在线观看|