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

隨筆 - 62  文章 - 96  trackbacks - 0
<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用鏈接

留言簿(7)

隨筆分類(66)

隨筆檔案(62)

文章分類(31)

文章檔案(32)

友情鏈接

最新隨筆

積分與排名

  • 積分 - 237646
  • 排名 - 108

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

昨天在PKU上做了一題2187,限時(shí)3s。
算法主要耗時(shí)在多次求不同整數(shù)的平方。
當(dāng)用pow函數(shù)求時(shí),超時(shí);
而直接乘才232ms。
相差也太大了吧。
于是就寫了一段代碼來測(cè)試pow的性能
首先產(chǎn)生10000個(gè)隨機(jī)整數(shù),然后重復(fù)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//重復(fù)次數(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;
}

下面是測(cè)試結(jié)果:

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

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

在做PKU2762時(shí),需要建鄰接表。
于是按部就班寫了下面一個(gè)插入邊到鄰接表中的函數(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;
}


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

再對(duì)比別人的程序
Memory:296K Time:109MS

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

依此算法優(yōu)化后,得到的結(jié)果比較滿意
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 閱讀(1579) | 評(píng)論 (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個(gè)元素有2^n個(gè)子集,
i從0到2^n - 1,
把它換算成二進(jìn)制就分別對(duì)應(yīng)一個(gè)子集。
posted @ 2007-07-23 15:56 beyonlin 閱讀(1101) | 評(píng)論 (0)編輯 收藏
以前求子集樹都是用回溯法,
今天在topcoder做SRM時(shí)學(xué)到一種求子集樹的新方法:位運(yùn)算。
第一重循環(huán)是枚舉所有子集,共2^n個(gè),即1 << n個(gè)
第二重循環(huán)求集合所有j個(gè)元素的值,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);
        }
    }
}
//位運(yùn)算
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) | 評(píng)論 (0)編輯 收藏
#include<iostream>
using namespace std;
const int MAXV = 10000//素?cái)?shù)表范圍
bool flag[MAXV
+1]; //標(biāo)志一個(gè)數(shù)是否為素?cái)?shù)
int prime[MAXV+1]; //素?cái)?shù)表,下標(biāo)從0開始
int size; //素?cái)?shù)個(gè)數(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 閱讀(2698) | 評(píng)論 (2)編輯 收藏
僅列出標(biāo)題  下一頁
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费观看久久久4p| 亚洲大片免费看| 国产欧美精品日韩区二区麻豆天美| 日韩图片一区| 亚洲摸下面视频| 国产嫩草一区二区三区在线观看 | 国产精品99免费看 | 欧美在线观看视频一区二区三区| 国产精品高潮粉嫩av| 亚洲男人影院| 久久综合久久综合这里只有精品| 亚洲人成网站999久久久综合| 欧美日韩成人在线播放| 亚洲综合电影一区二区三区| 久久久久国产免费免费| 亚洲精品日韩欧美| 国产精品亚洲一区二区三区在线| 欧美资源在线观看| 91久久中文| 欧美一区二区私人影院日本| 极品中文字幕一区| 欧美体内she精视频| 久久米奇亚洲| 一区二区三区四区五区精品视频| 久久久久久婷| 中文在线不卡| 永久免费精品影视网站| 欧美午夜精品久久久久久超碰| 久久国产主播精品| 99国产精品视频免费观看一公开| 久久亚裔精品欧美| 亚洲性图久久| 亚洲激情第一区| 国产精品视频久久久| 欧美不卡在线| 久久国产精品毛片| 一本久久综合亚洲鲁鲁| 欧美国产三区| 久久先锋资源| 欧美在线影院| 亚洲天堂av在线免费观看| 亚洲国产黄色片| 国产一区自拍视频| 国产精品麻豆va在线播放 | 欧美精品久久久久久| 欧美一区二区视频97| 中国亚洲黄色| 亚洲精品一区在线观看| 男人天堂欧美日韩| 久久九九免费视频| 欧美一级精品大片| 亚洲欧美成人| 在线中文字幕不卡| 日韩一级成人av| 亚洲精品美女免费| 亚洲国产一区二区三区a毛片| 国产日韩一区二区| 国产精品一区免费观看| 欧美日韩中文字幕精品| 欧美另类变人与禽xxxxx| 欧美超级免费视 在线| 久久综合给合久久狠狠色| 久久xxxx| 久久精品国产亚洲a| 欧美亚洲专区| 欧美在线啊v一区| 欧美亚洲免费高清在线观看| 亚洲欧美影院| 午夜精品视频在线观看| 亚洲视频欧美视频| 亚洲已满18点击进入久久| 亚洲一区网站| 亚洲专区一二三| 午夜精彩国产免费不卡不顿大片| 亚洲一区www| 亚洲免费综合| 欧美在线视频在线播放完整版免费观看| 亚洲一级二级| 欧美亚洲尤物久久| 久久尤物电影视频在线观看| 乱人伦精品视频在线观看| 欧美1区视频| 欧美日韩hd| 国产精品福利片| 国产日韩三区| 91久久在线播放| 一区二区免费在线视频| 亚洲天堂免费观看| 久久精品99国产精品酒店日本| 久久精品视频在线| 欧美黄色影院| 一本色道久久综合亚洲精品婷婷| 亚洲少妇最新在线视频| 午夜欧美电影在线观看| 久久视频国产精品免费视频在线 | 亚洲欧美视频一区二区三区| 久久精品视频免费播放| 欧美国产日韩免费| 在线视频欧美精品| 欧美在线一区二区三区| 欧美wwwwww| 国产精品毛片高清在线完整版| 国产日韩欧美精品一区| 亚洲激情图片小说视频| 亚洲一区二区三区精品动漫| 久久九九电影| 亚洲精品乱码久久久久久日本蜜臀| 一区二区av| 久久精品一二三区| 欧美日韩午夜剧场| 国内精品久久久久久久影视麻豆| 亚洲日本视频| 欧美一区日韩一区| 亚洲电影在线播放| 亚洲愉拍自拍另类高清精品| 老**午夜毛片一区二区三区| 国产精品女主播| 亚洲国产日韩精品| 欧美一区二区三区在线免费观看| 免费成人激情视频| 一区二区三区视频免费在线观看| 久久久精品国产99久久精品芒果| 欧美视频日韩| 亚洲国语精品自产拍在线观看| 亚洲欧美综合v| 亚洲国内精品| 久久久久久久久蜜桃| 国产精品伦理| 99re热这里只有精品视频| 老牛国产精品一区的观看方式| 亚洲视频在线看| 欧美国产三级| 亚洲国产网站| 久久亚洲精品欧美| 亚洲欧美一区二区视频| 欧美三级视频在线| 野花国产精品入口| 欧美成人一区二区三区在线观看| 亚洲欧美日韩精品| 欧美日韩一区在线播放| 亚洲欧洲在线免费| 欧美+日本+国产+在线a∨观看| 亚洲欧美成人精品| 国产精品wwwwww| 999在线观看精品免费不卡网站| 开元免费观看欧美电视剧网站| 午夜精品久久久久久久99水蜜桃 | 国产精品久久久久91| 日韩亚洲成人av在线| 欧美aⅴ一区二区三区视频| 久久大综合网| 国产日本亚洲高清| 久久国产日韩欧美| 午夜久久久久久| 国产亚洲欧洲一区高清在线观看| 午夜精品久久久久久久久久久久久 | 一区二区三区精品| 亚洲六月丁香色婷婷综合久久| 美女国内精品自产拍在线播放| 在线观看中文字幕不卡| 久久综合给合久久狠狠色| 午夜在线a亚洲v天堂网2018| 国产毛片精品视频| 久久精品在线| 久久岛国电影| 亚洲成人在线视频网站| 欧美成人免费一级人片100| 老司机亚洲精品| 亚洲高清毛片| 亚洲第一二三四五区| 欧美成人午夜视频| 一本久久综合亚洲鲁鲁| 亚洲免费高清| 国产精品黄色在线观看| 午夜精品久久99蜜桃的功能介绍| 亚洲免费视频观看| 国产一区二区三区的电影| 老鸭窝毛片一区二区三区| 巨乳诱惑日韩免费av| 一本色道综合亚洲| 亚洲一区二区高清| 国产一区二区三区电影在线观看| 免费成人美女女| 欧美日本在线| 久久精品人人爽| 蘑菇福利视频一区播放| 亚洲视频在线视频| 欧美一级久久| 亚洲欧洲一级| 亚洲自拍三区| 91久久精品美女高潮| av不卡免费看| 国模一区二区三区| 亚洲国产精品久久久| 国产精品一卡二卡| 欧美va天堂| 国产精品国码视频| 欧美高清你懂得| 国产精品久久久久久模特| 老妇喷水一区二区三区|