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

隨筆 - 62  文章 - 96  trackbacks - 0
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

留言簿(7)

隨筆分類(66)

隨筆檔案(62)

文章分類(31)

文章檔案(32)

友情鏈接

最新隨筆

積分與排名

  • 積分 - 236747
  • 排名 - 108

最新評論

閱讀排行榜

評論排行榜

昨天在PKU上做了一題2187,限時3s。
算法主要耗時在多次求不同整數(shù)的平方。
當用pow函數(shù)求時,超時;
而直接乘才232ms。
相差也太大了吧。
于是就寫了一段代碼來測試pow的性能
首先產生10000個隨機整數(shù),然后重復1000次求整數(shù)的平方

#include <iostream>
#include 
<cmath>
#include 
<ctime>
using 
namespace std;
const int MAX = 10000;
int a[MAX];
int main()
{
    
int i, j, n = MAX;
    
int rep = 1000//重復次數(shù)
    clock_t beg, 
end;
    
for(i = 0; i < n; i++)
        a[i] 
= rand() % 20000 - 10000//-10000 <= a[i]< 10000

    cout
<<"test a[i]*a[i]"<<endl;
    beg 
= clock();
    
for(j = 0; j < rep; j++)
        
for(i = 0; i < n; i++)
            a[i] 
* a[i];
    
end = clock();
    cout
<<"time: "<<end - beg<<"ms"<<endl;
    
    cout
<<"test pow(a[i], 2.0)"<<endl;
    beg 
= clock();
    
for(j = 0; j < rep; j++)
        
for(i = 0; i < n; i++)
            pow(a[i], 
2.0);
    
end = clock();
    cout
<<"time: "<<end - beg<<"ms"<<endl;

    
return 0;
}

下面是測試結果:

test a[i]*a[i]
time: 31ms
test pow(a[i], 2.0)
time: 2828ms

所以下次遇到類似情況不再用pow函數(shù)了……
posted @ 2007-08-25 20:16 beyonlin 閱讀(5796) | 評論 (6)編輯 收藏

在做PKU2762時,需要建鄰接表。
于是按部就班寫了下面一個插入邊到鄰接表中的函數(shù):

const int VMAX = 1010;
typedef struct Graph
{
    
int vex;
    Graph
* next;
}Graph;
Graph ArcGraph[VMAX];
void insert(
int u, int v)
{
    Graph
* t = new Graph;
    Graph
* p = ArcGraph[u].next;
    t
->vex = v;
    t
->next = p;
    ArcGraph[u].next 
= t;
}


完成完整的程序提交上去,得到結果
Memory:25796K  Time:375MS
Language:C++  Result:Accepted

再對比別人的程序
Memory:296K Time:109MS

無論是時間還是空間都相差很大。
于是就考慮怎么優(yōu)化自己的程序。
第一個問題:規(guī)模只有1000,為什么會用那么多內存呢?
仔細一想數(shù)據(jù)是多case的,每次插入新節(jié)點時都要動態(tài)創(chuàng)建一個節(jié)點。
一來動態(tài)創(chuàng)建耗時間,二來每個case結束的鄰接表中的節(jié)點沒有釋放,故耗費大量內存。
然后就想到了下面的算法,首先初始化一塊內存Graph use[100*VMAX];這樣每次需要新節(jié)點時,
就從use中獲取。如果use使用完畢就再動態(tài)創(chuàng)建。

依此算法優(yōu)化后,得到的結果比較滿意
Memory:1000K  Time:218MS
Language:C++  Result:Accepted

const int VMAX = 1010;
typedef struct Graph
{
    
int vex;
    Graph
* next;
}Graph;
Graph ArcGraph[VMAX];
Graph use[
100*VMAX];
int size = 0;
void insert(
int u, int v)
{
    Graph
* t;
    
if(size < 100*VMAX)
    {
        t 
= &use[size];
        size
++;
    }
    
else t = new Graph;
    Graph
* p = ArcGraph[u].next;
    t
->vex = v;
    t
->next = p;
    ArcGraph[u].next 
= t;
}
posted @ 2007-08-13 00:29 beyonlin 閱讀(1569) | 評論 (0)編輯 收藏
發(fā)現(xiàn)用stl中的bitset求子集樹只要短短的幾行代碼
#include<iostream>
#include
<bitset>
using 
namespace std;
const int n = 4;
int main()
{
    
for(int i = 0; i < (1 << n); i++)
    {
        bitset
<n> bit(i);
        
for(int j = bit.size() - 1; j >= 0; j--)
            cout
<<bit[j];
        cout
<<endl;
    }
    
return 0;
}
n個元素有2^n個子集,
i從0到2^n - 1,
把它換算成二進制就分別對應一個子集。
posted @ 2007-07-23 15:56 beyonlin 閱讀(1090) | 評論 (0)編輯 收藏
以前求子集樹都是用回溯法,
今天在topcoder做SRM時學到一種求子集樹的新方法:位運算。
第一重循環(huán)是枚舉所有子集,共2^n個,即1 << n個
第二重循環(huán)求集合所有j個元素的值,0或1。
求一下1 & (1 << j)的值就可以知道它的原理。
#include<iostream>
using 
namespace std;
const int n = 4;
int x[n];
//回溯法
void backtrack(
int t)
{
    
if(t >= n)
    {
        
for(int i = 0; i < n; i++)
            cout
<<x[i];
        cout
<<endl;
    }
    
else
    {
        
for(int i = 0; i <= 1; i++)
        {
            x[t] 
= i;
            backtrack(t 
+ 1);
        }
    }
}
//位運算
void bitOperate()
{
    
for(int i = 0; i < (1 << n); i++)
    {
        
for(int j = 0; j < n; j++)
        {
            
if( (i & (1 << j) ) == 0)
                x[j] 
= 0;
            
else
                x[j] 
= 1;
        }
        
for(int j = 0; j < n; j++)
            cout
<<x[j];
        cout
<<endl;
    }
}
int main()
{
    backtrack(
0);
    cout
<<endl;
    bitOperate();
    
return 0;
}
posted @ 2007-07-22 02:59 beyonlin 閱讀(1771) | 評論 (0)編輯 收藏
#include<iostream>
using namespace std;
const int MAXV = 10000//素數(shù)表范圍
bool flag[MAXV
+1]; //標志一個數(shù)是否為素數(shù)
int prime[MAXV+1]; //素數(shù)表,下標從0開始
int size; //素數(shù)個數(shù)
void genPrime(
int max)
{
    memset(flag, 
true, sizeof(flag));
    
for(int i = 2; i <= max / 2; i++)
    {
        
if(flag[i])
        {
            
for(int j = i << 1 ; j <= max; j += i)
            {
                flag[j] 
= false;
            }
        }
    }
    
for(int i = 2 ; i <= max; i++)
    {
        
if(flag[i])
        {
            prime[size
++= i;
        }
    }
}
int main()
{
    genPrime(MAXV);
    return 
0;
}
posted @ 2007-05-18 16:13 beyonlin 閱讀(2683) | 評論 (2)編輯 收藏
僅列出標題  下一頁
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲高清在线播放| 欧美三级免费| av不卡在线| 一区二区激情| 国产精品99久久久久久宅男| 亚洲婷婷综合久久一本伊一区| 亚洲一区二区网站| 久久精品国亚洲| 欧美成人午夜免费视在线看片| 玖玖玖国产精品| 久久精品国产清高在天天线| 欧美在线观看日本一区| 久久精品五月| 欧美激情第六页| 国产精品久久久久久久久久免费看 | 久久久噜噜噜久久久| 久久综合给合| 亚洲人成网站精品片在线观看 | 黄色成人在线观看| 亚洲国产91| 亚洲摸下面视频| 久久综合给合久久狠狠色| 亚洲第一精品电影| 亚洲一区二区精品在线观看| 久久午夜视频| 国产精品男女猛烈高潮激情| 亚洲国产一二三| 欧美一区二区三区在线观看视频| 欧美成人精品高清在线播放| 亚洲视频一区二区免费在线观看| 久热综合在线亚洲精品| 国产精品亚洲激情| 亚洲乱码一区二区| 久久九九久久九九| 一区二区久久| 欧美高清视频www夜色资源网| 国产精品一区二区三区乱码| 亚洲激情婷婷| 久久综合久久综合久久| 亚洲神马久久| 欧美男人的天堂| 亚洲高清视频在线| 久久在线免费观看| 亚洲深夜福利视频| 欧美区日韩区| 亚洲精品美女| 欧美国产日韩精品| 久久亚洲国产精品一区二区| 国产人成一区二区三区影院| 亚洲色图制服丝袜| 亚洲日本中文字幕| 美女网站久久| 狠狠色伊人亚洲综合成人| 午夜久久久久久| 一本在线高清不卡dvd| 美女尤物久久精品| 91久久精品国产91性色tv| 麻豆成人综合网| 久久久精品999| 国产在线视频欧美一区二区三区| 久久本道综合色狠狠五月| 亚洲欧美激情诱惑| 国产欧美日韩另类视频免费观看| 午夜国产一区| 亚洲欧美日韩在线高清直播| 国产日本欧美一区二区三区在线 | 性欧美videos另类喷潮| 日韩视频一区二区在线观看 | 韩日午夜在线资源一区二区| 午夜久久tv| 亚洲综合欧美日韩| 欧美日韩国产综合视频在线观看| 亚洲国产成人久久综合| 蜜臀99久久精品久久久久久软件| 久久久99精品免费观看不卡| 在线精品视频免费观看 | 亚洲图色在线| 国产精品一区视频| 久久精品在这里| 久久夜色精品国产欧美乱| 亚洲电影免费在线| 你懂的视频一区二区| 麻豆视频一区二区| 99在线热播精品免费99热| 一区二区欧美在线观看| 国产亚洲精品aa| 欧美国产日韩xxxxx| 欧美体内she精视频| 久久精品一区二区| 欧美1区视频| 亚洲欧美日韩国产另类专区| 欧美一区二区成人6969| 亚洲国产欧美在线人成| 99re这里只有精品6| 国产精品一区一区三区| 欧美高清视频一区二区三区在线观看 | 国产亚洲观看| 亚洲黄色影院| 国产日韩欧美亚洲| 欧美激情麻豆| 国产精品一区二区久久久久| 美女国产一区| 国产精品福利在线观看网址| 美女图片一区二区| 欧美少妇一区| 欧美成人免费在线视频| 国产精品欧美日韩久久| 欧美成人影音| 国产日韩欧美综合一区| 亚洲国产精品传媒在线观看 | 日韩午夜av| 亚洲国产精品久久久| 亚洲一区二区三区午夜| 亚洲精品一二| 久久久久综合一区二区三区| 亚洲一二三区精品| 欧美福利网址| 免费欧美视频| 激情久久中文字幕| 午夜精品亚洲一区二区三区嫩草| 99精品国产在热久久| 亚洲天堂黄色| 亚洲网站在线| 欧美日韩一区二区高清| 亚洲第一区在线| 欧美a级片网| 欧美日韩在线高清| 欧美激情欧美狂野欧美精品| 国产手机视频一区二区| 一本久久知道综合久久| 亚洲精品一区在线| 免费不卡视频| 欧美激情在线狂野欧美精品| 激情欧美国产欧美| 久久精品九九| 久久综合九色九九| 伊甸园精品99久久久久久| 欧美一级播放| 久久黄金**| 国精品一区二区三区| 欧美在线一二三区| 久久精品成人| 黄色国产精品| 在线亚洲一区观看| 久久手机免费观看| 久久久水蜜桃| 精品成人乱色一区二区| 亚洲欧美日韩国产成人| 午夜在线一区二区| 国产精品久久影院| 性欧美大战久久久久久久久| 欧美一区二区三区久久精品茉莉花| 国产精品分类| 欧美一级欧美一级在线播放| 久久乐国产精品| 亚洲国产欧美在线人成| 欧美激情成人在线| 亚洲视频免费观看| 久久精品官网| 影音先锋日韩资源| 欧美激情久久久久| 一本色道久久综合亚洲精品按摩| 亚洲欧美一区二区精品久久久| 午夜性色一区二区三区免费视频| 亚洲国产成人av在线| 久久久夜夜夜| 亚洲国产一区在线| 亚洲精品在线观| 国产精品豆花视频| 欧美一区二区三区精品电影| 免费观看在线综合色| 99精品免费网| 国产日韩欧美中文| 欧美国产日本高清在线| 亚洲砖区区免费| 免费观看成人鲁鲁鲁鲁鲁视频| 一本色道久久综合亚洲二区三区| 国产精品无人区| 欧美在线国产| 亚洲精品专区| 性一交一乱一区二区洋洋av| 一区二区三区在线免费播放| 欧美精品一区在线| 欧美一区亚洲| 亚洲精品婷婷| 免费国产一区二区| 欧美一区二区视频观看视频| 亚洲成色777777在线观看影院| 欧美网站大全在线观看| 玖玖精品视频| 欧美与黑人午夜性猛交久久久| 欧美日韩高清在线| 在线日本成人| 欧美体内she精视频在线观看| 久久激情视频久久| 日韩亚洲不卡在线| 亚洲电影自拍| 久久日韩精品| 久久精品国产精品亚洲综合| 在线亚洲免费视频|