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

隨筆 - 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片| 亚洲国产精品久久久久秋霞影院| 亚洲欧洲在线视频| 欧美三级第一页| 香蕉国产精品偷在线观看不卡| 亚洲一区二区在线免费观看视频| 国产色综合久久| 免费一级欧美在线大片| 欧美大秀在线观看| 午夜精彩国产免费不卡不顿大片| 午夜国产精品影院在线观看 | 性高湖久久久久久久久| 好看的亚洲午夜视频在线| 欧美成人tv| 国产精品a久久久久| 久久一区免费| 欧美日韩免费视频| 久久久欧美精品sm网站| 欧美黄网免费在线观看| 欧美有码在线观看视频| 欧美成人一品| 久久精品人人| 亚洲网站在线观看| 免费观看成人网| 国产精品高潮呻吟久久av无限| 久久久精品久久久久| 欧美ab在线视频| 欧美在线黄色| 欧美激情第8页| 久久久久久久一区二区| 欧美人成网站| 欧美激情精品久久久久久变态| 欧美午夜在线| 亚洲人成7777| 依依成人综合视频| 亚洲女优在线| 一区二区三区高清不卡| 免费观看成人www动漫视频| 午夜激情一区| 欧美精品网站| 亚洲第一精品夜夜躁人人爽 | 亚洲欧美中文在线视频| 亚洲三级影院| 久久精品国产精品亚洲| 欧美一级夜夜爽| 欧美日韩成人在线视频| 欧美成人69av| 激情一区二区三区| 先锋资源久久| 午夜精品视频在线| 欧美三级在线视频| 日韩一二在线观看| 亚洲视频综合在线| 欧美精品videossex性护士| 欧美3dxxxxhd| 亚洲国产成人在线播放| 久久精品青青大伊人av| 久久理论片午夜琪琪电影网| 国产免费观看久久黄| 亚洲制服av| 久久国产一区二区| 国产区二精品视| 欧美在线高清| 久久亚洲视频| 亚洲片区在线| 欧美日韩不卡视频| 日韩图片一区| 亚洲欧美日韩在线高清直播| 国产精品久久午夜| 亚洲免费在线| 久久理论片午夜琪琪电影网| 激情六月综合| 欧美成人精品不卡视频在线观看| 亚洲国产黄色| 亚洲性夜色噜噜噜7777| 欧美性开放视频| 亚洲欧美在线aaa| 麻豆精品视频在线| 亚洲欧洲视频| 国产精品久久久久久久久久久久久 | 女仆av观看一区| 亚洲国产精品123| 中文高清一区| 欧美日韩在线一二三| 中文欧美日韩| 欧美三区在线视频| 亚洲网站啪啪| 欧美影院久久久| 在线观看三级视频欧美| 欧美激情精品久久久久久蜜臀 | 亚洲一二三区在线| 久久久久久一区| 亚洲精品在线二区| 国产精品视屏| 免费高清在线视频一区·| 99亚洲精品| 麻豆成人在线播放| 亚洲自拍啪啪| 亚洲激情婷婷| 国产日韩欧美一二三区| 欧美韩日一区二区三区| 亚洲专区一区二区三区| 亚洲东热激情| 久久久久久亚洲精品杨幂换脸| 99v久久综合狠狠综合久久| 日韩一区二区高清| 国产精品免费看| 美女精品国产| 午夜精品成人在线视频| 亚洲国产精品毛片| 久久久亚洲欧洲日产国码αv| 一本色道久久综合亚洲精品不卡 | 欧美专区在线| 国产精品99久久久久久白浆小说| 免费不卡亚洲欧美| 久久精品官网| 亚洲午夜在线观看视频在线| 18成人免费观看视频| 国产日韩欧美在线一区| 欧美日韩在线一区二区| 欧美第一黄色网| 久久久国产视频91| 性18欧美另类| 亚洲中字在线| 亚洲制服少妇| 亚洲综合欧美日韩| 99精品欧美一区二区蜜桃免费| 欧美岛国在线观看| 久久综合久色欧美综合狠狠 | 亚洲一区二区视频| 99精品国产一区二区青青牛奶| 精品成人国产| 在线播放一区| 在线观看日韩av先锋影音电影院| 国产午夜精品一区理论片飘花| 国产精品男gay被猛男狂揉视频| 欧美日韩成人一区二区| 欧美激情免费在线| 欧美极品在线观看| 欧美精品一区二区在线观看| 欧美~级网站不卡| 免费日韩一区二区| 欧美成人网在线| 欧美日本三级| 国产精品福利久久久| 国产精品日韩一区| 国产毛片久久| 激情综合网激情| 亚洲人成人一区二区在线观看| 亚洲黄色在线视频| 一区二区三区导航| 亚洲欧美日韩中文视频| 欧美一区二区三区免费观看视频| 亚洲精品在线二区| 欧美岛国在线观看| 久久综合色一综合色88| 久久精品欧美日韩| 久久一区二区视频| 欧美乱人伦中文字幕在线| 欧美日韩国产页| 国产欧美日韩精品一区| 精品88久久久久88久久久| 91久久久亚洲精品| 亚洲香蕉视频| 久久久欧美一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲电影视频在线| 一区二区三区四区五区精品视频 | 香蕉成人伊视频在线观看| 久久精品一区二区| 亚洲高清免费在线| 亚洲午夜激情网站| 久久中文字幕一区| 国产精品九九| 91久久综合亚洲鲁鲁五月天| 一区二区成人精品| 久久免费一区| 9色精品在线| 久久米奇亚洲| 国产精品美女主播| 亚洲日本va午夜在线电影 | 亚洲高清视频一区二区| 亚洲一级特黄| 欧美福利专区| 欧美亚洲网站| 欧美视频在线一区二区三区| 伊甸园精品99久久久久久| 亚洲影院污污.| 亚洲第一搞黄网站| 久久国产精品高清| 欧美日韩综合不卡| 最新成人av网站| 久久噜噜亚洲综合| 亚洲欧美日韩中文在线制服| 欧美精品一区二区三区蜜臀 | 欧美经典一区二区三区| 一区视频在线播放| 久久精品国产欧美激情| 在线亚洲欧美视频| 欧美国产精品久久|