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

隨筆 - 62  文章 - 96  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆分類(66)

隨筆檔案(62)

文章分類(31)

文章檔案(32)

友情鏈接

最新隨筆

積分與排名

  • 積分 - 237629
  • 排名 - 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 閱讀(5829) | 評(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 閱讀(1578) | 評(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)題
共12頁(yè): 1 2 3 4 5 6 7 8 9 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一区免费| 欧美激情一区二区三区在线 | 国产精品专区h在线观看| 国产精品99久久99久久久二8| 亚洲视频一区在线| 亚洲国产毛片完整版| 国产欧美日韩91| 欧美精品一区二区三区视频| 欧美在线视频播放| 一区二区三区久久久| 亚洲高清在线播放| 久久久久国产精品www| 亚洲欧美在线磁力| 一区二区三区不卡视频在线观看| 国产精品第2页| 欧美激情国产日韩| 久久一区视频| 久久精品国产综合精品| 亚洲——在线| 亚洲一区二区三区激情| 老牛影视一区二区三区| 欧美中文字幕在线| 亚洲在线免费观看| 黄色另类av| 韩国三级电影一区二区| 国产日韩一区| 国产日本欧美一区二区三区| 国产精品综合不卡av| 国产精品久久久久久久7电影| 久久精品理论片| 亚洲毛片在线| 亚洲精品在线观| 亚洲美女啪啪| 一级成人国产| 在线亚洲欧美| 亚洲伊人一本大道中文字幕| 欧美1区免费| 欧美sm重口味系列视频在线观看| 亚洲一级影院| 亚洲免费一在线| 亚洲激情一区二区三区| 亚洲黄色av| 亚洲精品国产精品国自产在线 | 亚洲欧洲在线看| 最新精品在线| 亚洲靠逼com| 中文国产成人精品久久一| 亚洲一区二区三区777| 亚洲自拍都市欧美小说| 午夜亚洲一区| 久久人人九九| 欧美人与性动交cc0o| 国产精品jizz在线观看美国| 欧美午夜免费| 国产揄拍国内精品对白| 狠狠色狠色综合曰曰| 亚洲东热激情| 在线视频中文亚洲| 欧美在线观看你懂的| 老巨人导航500精品| 亚洲经典在线看| 亚洲网址在线| 久久久之久亚州精品露出| 性欧美暴力猛交另类hd| 久久米奇亚洲| 欧美日韩在线播放三区| 欧美成人在线影院| 国产精品激情电影| 激情综合在线| 9l视频自拍蝌蚪9l视频成人| 欧美一区二区视频在线观看2020| 亚洲一级在线观看| 日韩午夜精品| 欧美在线一级视频| 欧美黄色大片网站| 亚洲综合第一页| 免费中文字幕日韩欧美| 国产精品乱码人人做人人爱| 在线欧美日韩国产| 亚洲自拍偷拍麻豆| 欧美va天堂在线| 欧美黄免费看| 午夜视频在线观看一区二区| 亚洲欧美日韩综合aⅴ视频| 亚洲自拍都市欧美小说| 久热国产精品| 国产日韩欧美综合精品| 亚洲最黄网站| 免费看亚洲片| 亚洲电影免费观看高清完整版在线| 欧美不卡视频一区| 亚洲图片在线| 欧美99在线视频观看| 国产午夜亚洲精品羞羞网站| 在线亚洲自拍| 欧美激情一区二区三区在线| 亚洲精华国产欧美| 久久激情五月丁香伊人| 国产精品国产三级国产普通话99| 国产女主播一区| 亚洲网站在线看| 亚洲高清视频在线| 中文精品在线| 欧美精品久久久久久久久老牛影院 | 亚洲桃色在线一区| 美女成人午夜| 欧美一区二区三区喷汁尤物| 久久一区精品| 国产日韩欧美一区二区三区在线观看| 黄色日韩精品| 久久成人18免费网站| 中日韩高清电影网| 欧美激情精品久久久| 亚洲国产精品毛片| 老色鬼精品视频在线观看播放| 亚洲国产精品悠悠久久琪琪| 久久久久久久一区二区| 狠狠色丁香久久婷婷综合_中| 亚洲精品国产精品国产自| 亚洲一区二区三区精品在线观看 | 性久久久久久| 国产精品欧美一区喷水| 亚洲视频在线免费观看| 久久久亚洲影院你懂的| 亚洲欧美日韩综合国产aⅴ | 国产精品亚洲不卡a| 亚洲专区欧美专区| 一区二区久久久久久| 欧美日韩一区二区欧美激情| 一区二区三区高清在线| 久久视频免费观看| 欧美一区二区在线观看| 国产丝袜美腿一区二区三区| 久久福利资源站| 亚洲欧美韩国| 国内精品视频在线观看| 老司机精品久久| 久久午夜影视| 亚洲精品综合| 美女日韩在线中文字幕| 久久久午夜电影| 亚洲黄色毛片| 亚洲看片免费| 国产精品久久网| 久久久精品免费视频| 久久亚洲精品视频| 亚洲精品影视| 亚洲网站在线| 国语自产精品视频在线看一大j8 | 免费在线视频一区| 免费观看国产成人| 一区二区日韩伦理片| 亚洲小说区图片区| 国内视频精品| 亚洲国产高清一区| 欧美日韩免费区域视频在线观看| 亚洲国产精品999| 亚洲经典三级| 欧美成人精品在线播放| 日韩视频免费大全中文字幕| 一区二区三区你懂的| 国产午夜精品美女视频明星a级| 亚洲欧美一区二区三区极速播放| 亚洲激情网站免费观看| 国产精品久久久久久久久久妞妞| 99国产精品国产精品毛片| 一区二区三区日韩欧美精品| 国产综合自拍| 久久久999精品| 亚洲欧美成aⅴ人在线观看| 韩国一区二区三区美女美女秀| 久久国产综合精品| 免费成人网www| 午夜精品久久一牛影视| 久久久水蜜桃av免费网站| 中文成人激情娱乐网| 久久精品亚洲精品国产欧美kt∨| 国产在线不卡视频| 亚洲人成人一区二区在线观看| 女生裸体视频一区二区三区| 亚洲欧美日本日韩| 亚洲免费在线电影| 国产丝袜一区二区| 亚洲精品久久视频| 欧美日精品一区视频| 久久深夜福利| 老鸭窝91久久精品色噜噜导演| 亚洲激情视频在线播放| 亚洲一区二区三区乱码aⅴ| 亚洲激情一区二区| 亚洲精品美女91| 国产精品成人免费| 欧美大胆成人| 国产三级欧美三级日产三级99| 久久久久国产精品一区二区| 欧美日本亚洲视频| 欧美高清视频在线| 国产亚洲va综合人人澡精品| 免费高清在线一区| 国产午夜久久|