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

隨筆 - 62  文章 - 96  trackbacks - 0
<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用鏈接

留言簿(7)

隨筆分類(66)

隨筆檔案(62)

文章分類(31)

文章檔案(32)

友情鏈接

最新隨筆

積分與排名

  • 積分 - 237777
  • 排名 - 108

最新評論

閱讀排行榜

評論排行榜

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

#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//重復次數
    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函數了……
posted @ 2007-08-25 20:16 beyonlin 閱讀(5832) | 評論 (6)編輯 收藏

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

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

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

依此算法優化后,得到的結果比較滿意
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 閱讀(1580) | 評論 (0)編輯 收藏
發現用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 閱讀(1101) | 評論 (0)編輯 收藏
以前求子集樹都是用回溯法,
今天在topcoder做SRM時學到一種求子集樹的新方法:位運算。
第一重循環是枚舉所有子集,共2^n個,即1 << 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 閱讀(1780) | 評論 (0)編輯 收藏
#include<iostream>
using namespace std;
const int MAXV = 10000//素數表范圍
bool flag[MAXV
+1]; //標志一個數是否為素數
int prime[MAXV+1]; //素數表,下標從0開始
int size; //素數個數
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 閱讀(2700) | 評論 (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>
            亚洲精品乱码久久久久久按摩观| 亚洲深夜影院| 夜夜爽99久久国产综合精品女不卡| 国产一区二区黄| 欧美一区日韩一区| 欧美一区亚洲| 国产精品日韩电影| 亚洲欧美日本精品| 另类图片国产| 日韩一区二区久久| 国产精品国产三级国产aⅴ9色| 亚洲一卡久久| 久久亚洲国产成人| 亚洲日本va午夜在线电影| 欧美激情一区二区三区全黄| 亚洲精品小视频| 欧美在线一二三| 亚洲激情国产| 国产精品mm| 久久久久亚洲综合| 亚洲精品视频啊美女在线直播| 亚洲女人天堂av| 一区二区三区在线视频播放| 欧美美女bbbb| 亚洲欧美制服另类日韩| 毛片av中文字幕一区二区| 亚洲人屁股眼子交8| 欧美日韩综合久久| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲乱码精品一二三四区日韩在线 | 欧美自拍丝袜亚洲| 亚洲国产小视频| 国产精品久久久久影院亚瑟| 亚洲一区免费网站| 欧美成人中文字幕| 亚洲永久免费视频| 久久三级福利| 久久亚洲私人国产精品va| 亚洲美女啪啪| 欧美1区3d| 欧美一级在线播放| 亚洲精选视频免费看| 国产日韩一区二区三区在线播放| 欧美国产日韩一区二区| 亚洲婷婷综合久久一本伊一区| 久久青草久久| 夜夜爽av福利精品导航 | 99精品欧美一区二区三区综合在线 | 黑人巨大精品欧美黑白配亚洲| 久久久久久穴| 日韩一本二本av| 欧美一级成年大片在线观看| 红桃视频一区| 欧美精品一区二区三区蜜桃| 亚洲视频久久| 欧美成年人网站| 欧美一区二区性| 这里只有精品电影| 亚洲激情成人| 樱桃成人精品视频在线播放| 国产精品豆花视频| 久久手机免费观看| 欧美在线播放| 亚洲欧美日韩天堂| 中文欧美在线视频| 亚洲第一狼人社区| 久久精视频免费在线久久完整在线看| 亚洲日本欧美天堂| 亚洲啪啪91| 亚洲高清免费视频| 国产亚洲欧美日韩一区二区| 欧美日韩精品免费观看视一区二区| 久久综合狠狠综合久久综合88| 久久激情综合网| 久久爱www.| 久久大香伊蕉在人线观看热2| 亚洲欧美另类在线| 先锋资源久久| 久久大逼视频| 久久在线视频在线| 国产日韩精品电影| 欧美全黄视频| 欧美视频在线观看| 国产精品va在线| 国产精品夜夜夜一区二区三区尤| 国产精品久久久91| 国产精品美女午夜av| 国产精品视频在线观看| 国产伦精品一区二区三区免费迷| 国产欧美日韩综合一区在线播放| 国产欧美一区二区色老头| 国产一区二区黄| 在线看片欧美| 亚洲精品一区二区三区在线观看| 亚洲精品中文字幕在线观看| 在线视频中文亚洲| 午夜精品久久久久久久| 欧美一区精品| 久久免费视频在线观看| 男人天堂欧美日韩| 亚洲精品免费在线观看| 一本久久a久久免费精品不卡| 亚洲在线日韩| 久久精品最新地址| 欧美高清hd18日本| 国产精品成人va在线观看| 国产午夜精品麻豆| 亚洲人成人一区二区三区| av不卡在线看| 久久都是精品| 欧美成人官网二区| 日韩天堂在线观看| 欧美一区二区三区久久精品茉莉花| 亚洲欧美日韩精品综合在线观看| 午夜在线精品| 久久综合色88| 欧美激情亚洲自拍| 国产欧美一区二区三区国产幕精品| 激情视频一区二区| 91久久中文字幕| 91久久精品日日躁夜夜躁欧美| 一本色道久久99精品综合| 一本色道久久综合亚洲精品按摩 | 一区二区三区在线视频播放| 一色屋精品亚洲香蕉网站| 欧美成人情趣视频| 亚洲永久免费| 久久夜色精品一区| 夜夜精品视频| 美女黄网久久| 国产亚洲成av人在线观看导航| 亚洲免费不卡| 蜜桃av一区二区三区| 一本一道久久综合狠狠老精东影业| 久久高清福利视频| 国产精品av免费在线观看| 国产综合色在线| 亚洲综合色激情五月| 亚洲丁香婷深爱综合| 亚洲欧美中文日韩在线| 欧美三区美女| 亚洲精美视频| 久久成人免费| 宅男精品视频| 欧美+亚洲+精品+三区| 欧美午夜视频一区二区| 亚洲激情第一区| 欧美一区在线直播| 欧美黑人多人双交| 伊人男人综合视频网| 亚洲午夜一区| 亚洲毛片在线看| 欧美在线观看视频在线| 欧美色另类天堂2015| 在线欧美亚洲| 欧美在线视频一区二区三区| 欧美成人一区二区| 久久精品免费观看| 国产精品美女视频网站| 亚洲日本成人女熟在线观看| 欧美一区91| 一本色道久久综合狠狠躁篇的优点 | 欧美三区美女| 亚洲第一精品久久忘忧草社区| 久久久精品五月天| 日韩亚洲精品在线| 欧美精品18+| 一区精品在线| 久久高清福利视频| 亚洲小说区图片区| 欧美激情一区二区三区蜜桃视频| 亚洲韩国日本中文字幕| 久久九九免费| 久久国产精品99精品国产| 国产一区在线视频| 蜜臀av一级做a爰片久久| 久久天天躁狠狠躁夜夜av| 亚洲最黄网站| 日韩视频二区| 国产精品免费一区豆花| 欧美一区二视频在线免费观看| 亚洲欧美经典视频| 国产一区二区三区在线观看免费视频| 久久久久91| 久久免费视频在线观看| 亚洲成人资源网| 亚洲国产精品一区在线观看不卡 | 亚洲一本视频| 国产午夜精品一区理论片飘花| 久久精品中文字幕一区| 久久久久久久久久久久久女国产乱 | 亚洲一级高清| 性8sex亚洲区入口| 在线看欧美视频| 99国产精品国产精品久久| 国产乱码精品一区二区三区av| 久久av一区二区| 免费欧美高清视频| 亚洲视频观看| 久久本道综合色狠狠五月|