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

隨筆 - 19, 文章 - 0, 評論 - 2, 引用 - 0
數據加載中……

2009年8月7日

zoj1405_Tanning Salon

        這個題目我錯了很久,一直錯的原因是我沒有真正的理解題目的意思。
        在 1 ABAB  這組數據上錯了,改過來之后就過了,下一次一定要好好讀題。
        這一次是盡量用C++來寫,在用rfind函數的時候出了一點小問題,應該是從這個字符往前推一位開始查找,若是第一個字符,就不能調用函數了,不然就會出錯。所以就多加了一個判斷,影響了程序的可讀性。下一次要找到一個不需要這樣判斷的方法。
#include<iostream>
#include
<string>
#define DEBUG 1
using namespace std ;

const int cap = 33 ;

char salon[cap] ;
string in ;

int check( int avai )
{
    
int i, j, pos(-1), flag, away(0) ;
    
for( i=0; i<in.size(); ++i ){
        
if( i >= 1 )
            pos 
= in.rfind( in[i], i ) ;
        
if( pos >= 0 ){
            flag 
= 0 ;
            
for( j=0; j<avai; ++j ){
                
if( salon[j] == in[i] ){
                    salon[j] 
= '\0' ;
                    flag 
= 1 ;
                    
break ;
                }

            }

            
if!flag )    {
                
for( j=0; j<avai; ++j ){
                    
if!salon[j] ){
                        flag 
= 1 ;
                        
break ;
                    }

                }

            }

            
if!flag )
                
++away ;
        }

        
else{
            
for( j=0; j<avai; ++j ){
                
if!salon[j] ){
                    salon[j] 
= in[i] ;
                    
break ;
                }

            }

        }

    }

    
return away ;
}


void output( int away )
{
    
if( away )
        cout 
<< away << " customer(s) walked away." << endl ;
    
else
        cout 
<< "All customers tanned successfully." << endl ;
}


int main( )
{
    
#if DEBUG
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif

    
int avai, away ;
    
while( cin >> avai ){
        
if( avai == 0 )
            
break ;
        cin 
>> in ;
        away 
= check( avai ) ;
        output( away ) ;
    }
    
    
return 0 ;
}

posted @ 2009-08-07 11:50 祝你好運! 閱讀(445) | 評論 (0)編輯 收藏

2009年7月26日

zoj1002 Fire Net

        好久都沒有寫解題總結了,手生了。抓緊時間做題,不然等到開學了,就不能這么爽的做題了。

        這個題數據量不大,可以用回溯。剛開始做的時候,是用廣搜,但是寫起來超麻煩,代碼量極大,很容易出錯。參考了大牛們的做法,才想起來和N皇后問題很像。我們可以從一個點出發,然后往右下擴散,擴散完了之后,再回溯,再擴散…… 問題解決。

#include<iostream>
#define DEBUG 0
using namespace std ;

int n, maxi ;
char a[5][5] ;

bool legal( int x, int y )
{
    
int i, j ;
    
for( i=x-1; i>=0--i ){
        
if( a[i][y] == '@' )
            
return false ;
        
else if( a[i][y] == 'X' )
            
break ;
    }

    
for( j=y-1; j>=0--j ){
        
if( a[x][j] == '@' )
            
return false ;
        
else if( a[x][j] == 'X' )
            
break ;
    }

    
return true ;
}


void trace( int x, int y, int geshu )
{
    
if( x == n )
        maxi 
= maxi>geshu ? maxi:geshu ;
    
else{
        
if( y == n )
            trace( x
+10, geshu ) ;
        
else {
            
if( a[x][y]=='.' && legal( x, y ) ){
                
// 回溯標記 
                a[x][y] = '@' ;
                trace( x, y
+1, geshu+1 ) ;
                a[x][y] 
= '.' ;
            }

            trace( x, y
+1, geshu ) ;
        }

    }

}


int main()
{
    
#if DEBUG
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif

    
int i, j ;
    
while( cin >> n ){
        
if!n )
            
break ;
        
for( i=0; i<n; ++i ){
            
for( j=0; j<n; ++j ){
                cin 
>> a[i][j] ;
            }

        }

        maxi 
= 0 ;
        
// 從0,0開始回溯 
        trace( 000 ) ;
        cout 
<< maxi << endl ;
    }

    
    
return 0 ;
}

posted @ 2009-07-26 17:33 祝你好運! 閱讀(363) | 評論 (0)編輯 收藏

2009年6月5日

hdu1016_Prime Ring Problem

        簡單而且經典的搜索題,用回溯做。對于什么是回溯什么是DFS我分不清。就是按位逐個判斷,直到找到結果,或者出界退出。

#include<iostream>
#include
<cmath>
using namespace std ;
int n, a[111], k, ans[22], anscnt ;
int p[42]= {0,0,2,3,0,5,0,7,0,0,0,11,0,13,0,0,0,17,0,19,0,
           
0,0,23,0,0,0,0,0,29,0,31,0,0,0,0,0,37,0,0,0,41}
 ;

int rev[100][20], revcnt ;

void DFS( int m, int geshu )
{
    
int i, j ;
    
if( geshu == n && p[1+m] ){
        cout 
<< ans[0] ;
        
for( i=1; i<n; ++i ){
            cout 
<< " " << ans[i] ;
            rev[revcnt][i] 
= ans[i] ;
        }

        
++revcnt ;
        cout 
<< "\n" ;
    }

    
else if( geshu == n )
        
return ;
    
for( j=2; j<=n; ++j ){
        
if( j<p[j+m] && !a[j] ){
            a[j] 
= 1 ;
            ans[geshu] 
= j ;
            DFS( j, geshu
+1 ) ;
            a[j] 
= 0 ;
        }

    }

}


int main( )
{
    
int i, j ;
    
for( j=1; cin >> n; ++j ){
        cout 
<< "Case "<< j << ":\n" ;
        
for( i=0; i<111++i )
            a[i] 
= 0 ;
        revcnt 
= 0 ;
        k 
= 1 ;
        ans[
0= 1 ;
        anscnt 
= 1 ;
        DFS( 
11 ) ;
        cout 
<< "\n";
    }

    
return 0 ;
}

posted @ 2009-06-05 10:55 祝你好運! 閱讀(218) | 評論 (0)編輯 收藏

2009年5月30日

hdu2303_The Embarrassed Cryptographer

        好幾天都沒有刷題了,心里好煩躁啊!

        今天終于又做了一個不是很水的題目,數論的,大整數取余,直接暴力過了。其中又學了一種素數的篩選法,效率比我以前用的方法都要高。他不計算,只是篩選。這樣一來效率就高了很多。還有一個地方,就是大整數的取余,從高位,到低位,邊乘邊取余,根據的是同余定理。


#include <stdio.h>
#include 
<string.h>
#include 
<stdlib.h>

int p[1000000] ;
char pr[1000000] ;
int len, pnum, num[14] ;

void prime( )
{
    
int i, j ;
    
// 篩選素數 
    for( i=2; i<1000000++i ){
        pr[i] 
= 1 ;
    }

    
for( i=2,pnum=0; i<1000000++i ){
        
if( pr[i] ){
            p[pnum
++= i ;
            
for( j=i+i; j<1000000; j+=i )
                pr[j] 
= 0 ;
        }

    }

}


int mod( int n )
{
    __int64 m
=0 ;
    
int i ;
    
// 求余數 
    for( i=len-1; i>=0--i ){
        m 
= ( m*100000000+num[i] ) % n ;
    }

    
return m ;
}


int main()
{
    
char a[111] ;
    
int i, j, div, flag ;
    
    prime( ) ;
    
    
while( scanf("%s%d", a, &div ) && div && a[0]!='0' ){
        len 
= strlen( a ) ;
        
for( i=0; i<14++i )
            num[i] 
= 0 ;
        
for( i=0; i<len; ++i ){
            
//逢一億進位 
            j = (len+7-i) / 8 - 1 ;
            num[j] 
= num[j]*10 + a[i]-'0' ;
        }

        len 
= (len+7)/8 ;
        flag 
= 1 ;
        
for( i=0; p[i]<div && i<pnum; ++i ){
            
if( mod( p[i] ) == 0 ){
                flag 
= 0 ;
                
break ;
            }

        }

        
if( flag )
            printf(
"GOOD\n") ;
        
else
            printf(
"BAD %d\n", p[i] ) ;
    }

    system(
"pause");
    
return 0 ;
}

posted @ 2009-05-30 15:38 祝你好運! 閱讀(336) | 評論 (0)編輯 收藏

2009年5月22日

hdu2048錯排的概率

          應該說是一個純數學的題目,考察錯排的概率。

#include <stdio.h>
#define DEBUG 1
int main()
{
    
#if DEBUG
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif
    
    __int64 i, n, sets, s, fenmu ;
    
double p, temp ;
    scanf(
"%I64d"&sets ) ;
    
while( sets-- ){
        scanf(
"%I64d"&n ) ;
        p 
= 1 ;
        s 
= 1 ;
        fenmu 
= 1 ;
        
for( i=1; i<=n; ++i ){
            s 
*= -1 ;
            fenmu 
*= i ;
            p 
+= s/(double)fenmu ;
        }

        printf(
"%.2lf%%\n"100*p ) ;
    }

}

posted @ 2009-05-22 00:02 祝你好運! 閱讀(541) | 評論 (0)編輯 收藏

2009年5月21日

hdu1465 錯排

         這一題就是單純的考察錯排,也就是考察遞推。

基本形式:d[1]=0;   d[2]=1
遞歸式:d[n]= (n-1)*( d[n-1] + d[n-2])

這就是著名的錯排公式

 

#include <stdio.h>
#define DEBUG 1
int main()
{
    
#if DEBUG
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif

    __int64 i, n, s, geshu, a1, a2, temp ;
    
while( EOF != scanf("%I64d"&n ) ){
        a1 
= 0 ;
        a2 
= 1 ;
        
for( i=1; i<=n; ++i ){
            temp 
= a2 ;
            a2 
= (i-1* (a1+a2) ;
            a1 
= temp ;
        }

        printf(
"%I64d\n", a2 ) ;
    }

    
return 0 ;
}

 

posted @ 2009-05-21 23:17 祝你好運! 閱讀(421) | 評論 (0)編輯 收藏

2009年5月12日

zoj1951_Goldbach's Conjecture

          判定素數的,水題,主要是練習一下篩選法。
#include <stdio.h>
#include 
<math.h>
#define DEBUG 1
short a[1000000] ;
int main()
{
    
#if DEBUG
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.txt","r",stdin);
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.txt","w",stdout);
     
#endif
    
int i, j, n, flag ;
    
double temp ;
    
for( i=2; i<1000000++i ){
        
if( a[i] )
            
continue ;
        
for( j=i; j<1000000; j+=i )
            a[j] 
= 1 ;
        temp 
= sqrt( i ) ;
        flag 
= 1 ;
        
for( j=2; j<=temp; ++j ){
            
if( i%== 0 ){
                flag 
= 0 ;
                
break ;
            }

        }

        
if( flag )
            a[i] 
= 0 ;
    }

    
while( scanf("%d"&n ) && n ){
        
for( i=3; i<n; i+=2 ){
            
if!a[i] && !a[n-i] ){
                printf(
"%d = %d + %d\n", n, i, n-i ) ;
                
break ;
            }

        }

    }

    
return 0 ;
}

posted @ 2009-05-12 17:03 祝你好運! 閱讀(216) | 評論 (0)編輯 收藏

2009年5月11日

hdu2816_I Love You Too

     摘要:            本來是一道水題,模擬的。但是我當時把一個int變量定義成char型的,結果是死活都調試不出來!一直WA 。最后還是自己檢查出來了。  1#include <stdio.h> 2#include <memory.h>...  閱讀全文

posted @ 2009-05-11 12:48 祝你好運! 閱讀(247) | 評論 (0)編輯 收藏

2009年5月10日

hdu1181變形課

        典型的Floyd傳遞閉包,只要知道了算法,做起來和簡單。
#include <stdio.h>
#include 
<string.h>
#include 
<memory.h>
#define DEBUG 1
const int N=28 ;
int map[N][N] ;

void Floyd( )
{
    
int i, j, k ;
    
for( k=0; k<26++k )
    
for( i=0; i<26++i )
    
for( j=0; j<26++j )
        map[i][j] 
= map[i][j] || ( map[i][k] && map[k][j] ) ;
}


int main()
{
    
#if DEBUG
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.txt","r",stdin);
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.txt","w",stdout);
     
#endif
     
int len ;
     
char a[2000] ;
     
while( EOF != scanf("%s",a) ){
        
if( a[0== '0' ){
            Floyd( ) ;
            
if( map[1][12] )
                printf(
"Yes.\n") ;
            
else
                printf(
"No.\n") ;
            memset( map, 
0sizeof(map) ) ;
            
continue ;
        }

        len 
= strlen( a ) ;
        map[a[
0]-'a'][a[len-1]-'a'= 1 ;
    }

    
return 0 ;
}

posted @ 2009-05-10 19:48 祝你好運! 閱讀(757) | 評論 (0)編輯 收藏

2009年5月8日

zoj1092_Arbitrage

        剛開始的時候我不知道這一題該如何來做,我當時想到了用搜索,但是數據量太大,可能會超時。隊友這一題說可以用最短路徑的方法來做。我實在是想不起來如何做,因為最短路徑的算法我只學了Dijsktra。我在網上搜了一下,發現別人用的全是Floyd算法。我就學習了一下Floyd。其精髓就是一個三重循環。以最外層變量為中樞點。不斷的求得兩個點之間的最短路徑。現在我只理解到了這里,有待于以后的提高!
       對于這一題,只要能夠找到一個頂點,讓他的值比1大,就說明可以錢生錢。

#include <stdio.h>
#include 
<string.h>
#include 
<memory.h>
#define DEBUG 1
int n ;
char mo[31][30] ;
double map[31][31] ; 

int Find( char *t )
{
    
int i ;
    
for( i=1; i<=n; ++i )
        
if!strcmp( mo[i], t ) )
            
return i ;
}


void Floyd( )
{
    
int i, j, k ;
    
for( k=1; k<=n; ++k )
        
for( i=1; i<=n; ++i )
            
for( j=1; j<=n; ++j )
                
if( map[i][j] < map[i][k]*map[k][j] )
                    map[i][j] 
= map[i][k]*map[k][j] ;
}


void In( )
{
    
int i, x, y, sets ;
    
char a[30], b[30] ;
    
double rate ;
    
for( i=1; i<=n; ++i )
           scanf(
"%s", mo[i] ) ;
    scanf(
"%d"&sets ) ;
    
for( i=1; i<=sets; ++i ){
        scanf(
"%s %lf %s", a, &rate, b ) ;
        x 
= Find( a ) ;
        y 
= Find( b ) ;
        map[x][y] 
= rate ;
    }

}


void Judge( )
{
    
int flag, i ;
    flag 
= 0 ;
    
for( i=1; i<=n; ++i ){
        
if( map[i][i] >= 1 ){
            flag 
= 1 ;
            
break ;
        }

    }

    
if( flag )
        printf(
"Yes\n") ;
    
else
        printf(
"No\n") ;    
}


int main()
{
    
#if DEBUG
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.in","r",stdin) ;
    freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.out","w",stdout) ;
    
#endif
    
    
int i ;
    
for( i=1; scanf("%d"&n) && n; ++i ){
        printf(
"Case %d: ", i ) ;
        memset( map, 
0sizeof(map) ) ;
        In( ) ;
        Floyd( ) ;
        Judge( ) ;
    }

    
return 0 ;
}

posted @ 2009-05-08 00:47 祝你好運! 閱讀(379) | 評論 (0)編輯 收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 亚洲激情成人| 亚洲一区视频| 亚洲人成在线免费观看| 亚洲一区视频在线观看视频| 国产综合香蕉五月婷在线| 亚洲欧洲日韩综合二区| 国产欧美一区二区三区久久| 欧美激情综合色| 国产精品久久精品日日| 欧美大片一区| 国产精品久久久久久久久免费 | 久久九九免费视频| 欧美日一区二区在线观看| 久久精品国产成人| 欧美精品麻豆| 久久综合久久综合久久综合| 国产精品jizz在线观看美国| 欧美成人精精品一区二区频| 国产精品麻豆va在线播放| 蜜臀久久久99精品久久久久久| 欧美视频一区二区| 亚洲电影免费在线观看| 国产亚洲福利一区| 一二三区精品| 亚洲精品欧美| 可以看av的网站久久看| 欧美专区日韩视频| 国产精品久久久999| 亚洲精品国久久99热| 在线观看欧美一区| 欧美一级久久久久久久大片| 亚洲国产导航| 国产精品视频专区| 亚洲欧洲精品一区二区精品久久久| 国产一级一区二区| 亚洲欧美一区二区三区极速播放| 中文av一区特黄| 欧美电影免费| 亚洲黄色小视频| 91久久久在线| 麻豆国产va免费精品高清在线| 久久久国产成人精品| 国产精品乱码久久久久久| 亚洲乱亚洲高清| 夜夜精品视频| 欧美日韩在线精品| 宅男在线国产精品| 亚洲欧美国产视频| 国产精品一区二区久久国产| 国产精品99久久不卡二区| 亚洲一区亚洲| 国产精品青草综合久久久久99| 一区二区三区日韩精品视频| 亚洲男同1069视频| 国产精品一国产精品k频道56| 亚洲欧美成人在线| 久久久中精品2020中文| 在线观看一区欧美| 嫩草国产精品入口| 日韩视频在线一区| 亚洲一区免费看| 国产欧美一区二区三区在线老狼| 欧美一区二区三区在线免费观看| 久久久噜噜噜久久久| 亚洲二区在线视频| 欧美精品一区二区三区四区| 一区二区欧美视频| 久久九九国产精品| 亚洲国产婷婷综合在线精品| 欧美剧在线免费观看网站| 在线亚洲欧美| 久久精品成人一区二区三区蜜臀| 在线精品视频免费观看| 欧美精品在线一区| 亚洲欧洲av一区二区三区久久| 久久精品一区二区国产| 亚洲国产精品久久久久久女王| 欧美精品v国产精品v日韩精品| 99这里有精品| 久久午夜羞羞影院免费观看| 夜夜嗨av一区二区三区中文字幕| 国产精品私拍pans大尺度在线| 久久xxxx| 99一区二区| 猛男gaygay欧美视频| 亚洲视频精品| 亚洲成人在线视频播放| 欧美色区777第一页| 久久久欧美精品sm网站| 一本色道久久综合狠狠躁篇的优点 | 亚洲精品一区二区三区四区高清| 性色av香蕉一区二区| 亚洲电影免费观看高清完整版| 欧美日韩视频一区二区| 久久久美女艺术照精彩视频福利播放 | 国产一区二区丝袜高跟鞋图片| 欧美国产日韩精品免费观看| 亚洲一区二区影院| 欧美三级视频| 久久一区二区三区四区| 亚洲影院色无极综合| 亚洲日本免费| 免费成人毛片| 久久精品人人爽| 亚洲综合日本| 一区二区三区精密机械公司| 尹人成人综合网| 国产有码一区二区| 欧美日韩国产不卡| 暖暖成人免费视频| 久久一区二区三区av| 欧美一区二区三区免费在线看| 制服丝袜亚洲播放| 日韩一级欧洲| 99香蕉国产精品偷在线观看| 91久久中文| 亚洲激情在线观看| 亚洲日本理论电影| 亚洲精品乱码久久久久久| 欧美成人中文字幕| 亚洲第一伊人| 亚洲精品国产精品乱码不99| 亚洲精品1234| 亚洲国产精品久久久久久女王| 欧美寡妇偷汉性猛交| 欧美v亚洲v综合ⅴ国产v| 免费成人激情视频| 欧美激情导航| 亚洲人成网站色ww在线| 亚洲国内自拍| 999在线观看精品免费不卡网站| 亚洲人成网站999久久久综合| 亚洲欧洲一区二区天堂久久| 亚洲人成网站777色婷婷| 亚洲六月丁香色婷婷综合久久| 亚洲精品一二| 一区二区三区成人| 亚洲在线一区二区| 久久激情综合网| 久久综合五月| 欧美日韩你懂的| 国产精品自拍小视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲风情亚aⅴ在线发布| 亚洲精品乱码久久久久久蜜桃麻豆 | 免费不卡视频| 亚洲日本电影| 亚洲网站在线观看| 久久久久久欧美| 欧美激情中文字幕乱码免费| 欧美无乱码久久久免费午夜一区| 国产精品视频最多的网站| 极品少妇一区二区| 亚洲另类在线一区| 欧美亚洲三区| 欧美超级免费视 在线| 亚洲精品中文字幕在线| 性欧美1819sex性高清| 美女网站久久| 国产精品老牛| 亚洲高清在线精品| 午夜精品久久久久久久99热浪潮 | 日韩视频精品| 亚洲一区二区三区视频| 久热精品视频在线免费观看| 亚洲精选大片| 久久久青草婷婷精品综合日韩| 欧美日韩亚洲一区二区三区| 国产性天天综合网| 日韩网站在线| 麻豆freexxxx性91精品| 亚洲天堂成人| 欧美看片网站| 在线不卡中文字幕| 久久精品盗摄| 亚洲视频专区在线| 欧美日韩国产成人在线91| 一区二区视频免费在线观看 | 乱码第一页成人| 国产精品99久久不卡二区| 男男成人高潮片免费网站| 国内精品视频在线播放| 亚洲免费影视第一页| 亚洲日本激情|