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

隨筆-6  評論-2  文章-0  trackbacks-0
  2010年12月6日
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 char a[36000];
 5 void rev()
 6 {
 7     int len=strlen(a),i;
 8     char t;
 9     for(i=0;i<len/2;++i)
10     {
11         t=a[i];
12         a[i]=a[len-1-i];
13         a[len-1-i]=t;
14     }
15 }//strrev()貌似不是標(biāo)準(zhǔn)庫函數(shù),囧
16 
17 void multi(int n)
18 {
19     int i,l=strlen(a),m=0,jw=0;
20     rev();
21     char t[36000];
22     for(i=0;i<l;++i)
23     {
24         t[i]=((a[i]-'0')*n+jw)%10+'0';
25         jw=((a[i]-'0')*n+jw)/10;
26     }
27     if(jw>=1000)
28     {
29         t[i]=jw%10+'0';
30         t[i+1]=(jw/10)%10+'0';
31         t[i+2]=(jw/100)%10+'0';
32         t[i+3]=jw/1000+'0';
33         t[i+4]='\0';
34     }
35     else if(jw>=100)
36     {
37         t[i]=jw%10+'0';
38         t[i+1]=(jw/10)%10+'0';
39         t[i+2]=jw/100+'0';
40         t[i+3]='\0';
41     }
42     else if(jw>=10)
43     {
44         t[i]=jw%10+'0';
45         t[i+1]=(jw/10)%10+'0';
46         t[i+2]='\0';
47     }
48     else if(jw)
49     {
50         t[i]=jw+'0';
51         t[i+1]='\0';
52     }
53     else t[i]='\0';
54     strcpy(a,t);
55     rev();
56 }//將字符串乘n,需考慮最后的進(jìn)位的位數(shù)。
57 
58 int main()
59 {
60     int n;
61     while(cin>>n)
62     {
63         memset(a,0,36000);
64         a[0]='1';
65         a[1]='\0';
66         for(int i=2;i<=n;++i)multi(i);
67         cout<<a<<endl;
68     }
69     return 0;
70 }
71 

  由于一直不肯寫個大整數(shù)的類,又不會用JAVA,遇到這種題目真是感到很難受。不過我今天用了一種比較耗時但確實思路簡單的方法過了這道題。首先,我們必須知道10000!到底有多少位,這樣才好定義合適的數(shù)組。
log10(2)+log(3)+...+log10(10000)=35659.9,所以定義一個36000的字符數(shù)組就夠了。整個實現(xiàn)比較簡單但是用了2312MS.....應(yīng)該分治之類的算法會好點,最快的100MS就過了。估計是重復(fù)的反轉(zhuǎn)和復(fù)制耗時了。
posted @ 2010-12-06 18:22 cometrue 閱讀(353) | 評論 (0)編輯 收藏
  2010年11月24日
//求N!的位數(shù)

//N!=1*2*3**N,兩邊取常用對數(shù),即可算出log10(N!),向上取整即為N!的位數(shù)
//hdoj    984MS    344K
/*

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double sum=0.0;
    int n,i,times,res;
    if(cin>>times&&times!=0)
    {
        while(times)
        {
            cin>>n;
            for(i=2;i<=n;++i)
                sum+=log10(i);
            res=ceil(sum);
            cout<<res<<endl;
            sum=0.0;
            --times;
        }
    }
    return 0;
}
*/
//String公式的方法,N!~sqrt(2*pi*N)*(N/e)^N
//hdoj    0MS        360K
#include <iostream>
#include 
<cmath>
using namespace std;
const double pi=3.1415926;
int main()
{
    
int n,times;
    
long double sum;
    
if(cin>>times&&times)
    {
        
while(times)
        {
            cin
>>n;
            sum
=(long double)0.5*log10(2*pi*n)+(long double)n*(log10(n)-log10(exp(1)));
            cout
<<(long)ceil(sum)<<endl;
            
--times;
        }
    }
    
return 0;
}
posted @ 2010-11-24 13:35 cometrue 閱讀(404) | 評論 (0)編輯 收藏
  2010年11月18日
#include <iostream>
using namespace std;
int a,b,s[100];
struct Pair
{
    
int x;
    
int y;
}res[
50];
int main()
{
    
int n,i,j,k;
    
bool flag=false;
    res[
0].x=res[0].y=1;
    
while(cin>>a>>b>>n)
    {
        
if(!(a||b||n))return 0;
        
for(i=1;i<50;++i)
        {
            res[i].x
=res[i-1].y;
            res[i].y
=(a*res[i-1].y+b*res[i-1].x)%7;
            
for(j=0;j<i-1;++j)//…………………………注意這里循環(huán)上限是i-1,這樣可以排除三個連續(xù)相等的情況。就是把循環(huán)節(jié)為1的看成2.
            {
                
if(res[j].x==res[i].x&&res[j].y==res[i].y)
                {
                    flag
=true;
                    
break;
                }
            }
            
if(flag)break;
        }
//一個循環(huán)找出循環(huán)節(jié)大小
        flag=false;//……………………注意把標(biāo)志還原
        if(n<=j)cout<<res[n].x<<endl;//未進(jìn)入循環(huán)時
        else
        {
            
if((n-j)%(i-j)==0)k=i-1;
            
else k=(n-j)%(i-j)+j-1;//這個式子改了很長時間,總是會出現(xiàn)問題。這是最終的形式
            cout<<res[k].x<<endl;
        }
    }
    
return 0;
}
提交了七次終于給過了。是道數(shù)論的簡單題,不過應(yīng)該用不到什么高深的知識,關(guān)鍵是找出循環(huán)節(jié)。因為對于1000000000的大小,如果不找規(guī)律的話無論如何也要超時的。分析一下,每個數(shù)僅取決于它前面的兩個,所以如果出現(xiàn)了相同的數(shù)對,則必出現(xiàn)循環(huán)。而且,每個數(shù)都是0~6之間的一個,可知不同的數(shù)對只有7*7=49個,那么只要計算出前50個數(shù),則其中必有相同的兩對數(shù)出現(xiàn)。上代碼。AC之后我想知道循環(huán)是不是總是從最前面兩個數(shù)開始,于是簡單寫了一個程序,遍歷了所有的a,b(易知它們也只有49種組合),下面是我得到的結(jié)果:
a b j i i-j
0 0 2 4 2
0 1 0 2 2
0 2 0 6 6
0 3 0 12 12
0 4 0 6 6
0 5 0 12 12
0 6 0 4 4
1 0 0 2 2
1 1 0 16 16
1 2 0 6 6
1 3 0 24 24
1 4 0 48 48
1 5 0 21 21
1 6 0 6 6
2 0 1 4 3
2 1 0 6 6
2 2 0 48 48
2 3 0 6 6
2 4 0 48 48
2 5 0 24 24
2 6 0 2 2
3 0 1 7 6
3 1 0 16 16
3 2 0 48 48
3 3 0 42 42
3 4 0 6 6
3 5 0 2 2
3 6 0 8 8
4 0 1 4 3
4 1 0 16 16
4 2 0 48 48
4 3 0 21 21
4 4 0 2 2
4 5 0 6 6
4 6 0 8 8
5 0 1 7 6
5 1 0 6 6
5 2 0 48 48
5 3 0 2 2
5 4 0 48 48
5 5 0 24 24
5 6 0 14 14
6 0 1 3 2
6 1 0 16 16
6 2 0 2 2
6 3 0 24 24
6 4 0 48 48
6 5 0 42 42
6 6 0 3 3
可見當(dāng)a,b都是7的倍數(shù)時,循環(huán)從第三個數(shù)開始(以后都是0);當(dāng)a,b中只有一個是7的倍數(shù)時,循環(huán)從第二個數(shù)開始(1,0、0,1的情況比較特殊,因為跟開始的1,1重復(fù)了所以可以認(rèn)為是從第一個數(shù)開始);當(dāng)a,b都不是7的倍數(shù)是,循環(huán)從第一個數(shù)開始。可見還是從第一個數(shù)開始循環(huán)的多。循環(huán)節(jié)也有長有短,比如當(dāng)a=1,b=4時一直到第49個數(shù)才出現(xiàn)循環(huán)。

posted @ 2010-11-18 17:00 cometrue 閱讀(1540) | 評論 (2)編輯 收藏
  2010年10月21日
#include <stdio.h>
#include 
<string.h>
void conv(char numb[],int n,int base)
{
    
int num[18],len=0,j;
    
while(n/base)
    {
        num[len]
=n%base;
        
++len;
        n
/=base;
    }
    num[len]
=n;
    
        
    
for(j=len;j>=0;--j)
    {
        
if(num[j]>9)numb[len-j]=num[j]+55;
        
else numb[len-j]=num[j]+'0';
    }
    numb[len
+1]='\0';
    
return ;
}


int main()
{
    FILE 
*fin,*fout;
    fin
=fopen("palsquare.in","r");
    fout
=fopen("palsquare.out","w");
    
int base,i,len=0,j;
    fscanf(fin,
"%d",&base);
    
for(i=1;i<=300;++i)
    {
        
char square[18]={'\0'},num[10]={'\0'};
        
int flag=1;
        conv(num,i,
base);
        conv(square,i
*i,base);
        len
=strlen(square);
        
for(j=0;j<=len/2;++j)
        {
            
if(square[j]!=square[len-j-1])
            {
                flag
=0;
                
break;
            }
        }
        
if(flag)fprintf(fout,"%s %s\n",num,square);
    }
    
return 0;
}
我還是習(xí)慣用C寫……所以把代碼貼上來的時候發(fā)現(xiàn)stdio是黑色的,而“base”是藍(lán)色的。
就這樣吧。
題目:
Palindromic Squares
Rob Kolstad

Palindromes are numbers that read the same forwards as backwards. The number 12321 is a typical palindrome.

Given a number base B (2 <= B <= 20 base 10), print all the integers N (1 <= N <= 300 base 10) such that the square of N is palindromic when expressed in base B; also print the value of that palindromic square. Use the letters 'A', 'B', and so on to represent the digits 10, 11, and so on.

Print both the number and its square in base B.

PROGRAM NAME: palsquare

INPUT FORMAT

A single line with B, the base (specified in base 10).

SAMPLE INPUT (file palsquare.in)

10

OUTPUT FORMAT

Lines with two integers represented in base B. The first integer is the number whose square is palindromic; the second integer is the square itself.

SAMPLE OUTPUT (file palsquare.out)

1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696
沒有什么復(fù)雜的算法,因為這一節(jié)講的就是“the brute force, straight-forward, try-them-all method of finding the answer. 

posted @ 2010-10-21 17:32 cometrue 閱讀(1273) | 評論 (0)編輯 收藏

#include <stdio.h>
#include 
<stdlib.h>
int main()
{
    FILE 
*fin,*fout;
    fin
=fopen("beads.in","r");
    fout
=fopen("beads.out","w");
    
char *beads;
    
int n;
    fscanf(fin,
"%d",&n);
    beads
=(char *)malloc(3*n*sizeof(char));
    fscanf(fin,
"%s",beads);
    
int i,a,b,left,right,sum=0;
    
for(i=n;i<3*n;++i)
    {
        beads[i]
=beads[i-n];
    }
    
for(i=n;i<2*n;++i)
    {
        left
=i;
        right
=i+1;
        
char ch;

        
while(beads[left]=='w'&&left>=0)--left;
        ch
=beads[left];
        
while(left>0&&(beads[left-1]==ch||beads[left-1]=='w'))--left;
        a
=i-left+1;

        
while(beads[right]=='w'&&right<3*n)++right;
        ch
=beads[right];
        
while(right<(3*n-1)&&(beads[right+1]==ch||beads[right+1]=='w'))++right;
        b
=right-i;

        
if(a+b>sum)sum=a+b;
        
if(a>=n||b>=n||a+b>n)sum=n;
    }
    fprintf(fout,
"%d\n",sum);
    
return 0;
}
首先我的想法是從1到n,left=0,right=1,然后往兩邊數(shù)顏色相同的珠子。如果用一個大小為n的數(shù)組存字符串,一個很顯然的問題就是當(dāng)left<0或者right>n-1時就要溢出。所以要用到一個取余的函數(shù)。
但是這樣確實太麻煩了,寫的代碼也容易出錯,我終于決定重寫了。新的想法是在字符串兩邊各復(fù)制一份相同的,這樣就是大小為3×n的字符串,而循環(huán)時只需要從n到2×n-1,解決了溢出的問題。(但是我覺得這并不是一個好方法,因為浪費了三倍的空間)。最終的代碼是這樣的,雖然AC了,但總不是那么完美。













posted @ 2010-10-21 14:54 cometrue 閱讀(1299) | 評論 (0)編輯 收藏
題目不難,但是。。。
首先我的想法是從1到n,left=0,right=1,然后往兩邊數(shù)顏色相同的珠子。如果用一個大小為n的數(shù)組存字符串,一個很顯然的問題就是當(dāng)left<0或者right>n-1時就要溢出。所以要用到一個取余的函數(shù)
int cycle(int a,int n)
{
    return a<0?(a%n+n):(a%n);
}
但是這樣確實太麻煩了,寫的代碼也容易出錯,我終于決定重寫了。新的想法是在字符串兩邊各復(fù)制一份相同的,這樣就是大小為3×n的字符串,而循環(huán)時只需要從n到2×n-1,解決了溢出的問題。(但是我覺得這并不是一個好方法,因為浪費了三倍的空間)。最終的代碼是這樣的,雖然AC了,但總不是那么完美
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fin,*fout;
fin=fopen("beads.in","r");
fout=fopen("beads.out","w");
char *beads;
int n;
fscanf(fin,"%d",&n);
beads=(char *)malloc(3*n*sizeof(char));
fscanf(fin,"%s",beads);
int i,a,b,left,right,sum=0;
for(i=n;i<3*n;++i)
{
beads[i]=beads[i-n];
}
for(i=n;i<2*n;++i)
{
left=i;
right=i+1;
char ch;

while(beads[left]=='w'&&left>=0)--left;
ch=beads[left];
while(left>0&&(beads[left-1]==ch||beads[left-1]=='w'))--left;
a=i-left+1;

while(beads[right]=='w'&&right<3*n)++right;
ch=beads[right];
while(right<(3*n-1)&&(beads[right+1]==ch||beads[right+1]=='w'))++right;
b=right-i;

if(a+b>sum)sum=a+b;
if(a>=n||b>=n||a+b>n)sum=n;
}
fprintf(fout,"%d\n",sum);
return 0;
}

posted @ 2010-10-21 14:39 cometrue 閱讀(1203) | 評論 (0)編輯 收藏
僅列出標(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>
            国产亚洲永久域名| 国产欧美欧洲在线观看| 免费高清在线视频一区·| 韩国欧美一区| 久久综合伊人77777| 亚洲国产国产亚洲一二三| 亚洲精品一区二区三区在线观看| 欧美激情免费观看| 亚洲小说春色综合另类电影| 久久精品视频免费播放| 在线看片日韩| 欧美日韩一区二区三区四区在线观看| 在线一区二区三区做爰视频网站 | 正在播放日韩| 国产精品久久久久国产精品日日| 午夜精品久久一牛影视| 女人色偷偷aa久久天堂| 一本大道久久a久久综合婷婷| 国产精品久久久对白| 久久久久高清| 99精品久久| 久久九九热免费视频| 日韩视频免费观看| 国产综合自拍| 欧美色区777第一页| 久久精品国产99精品国产亚洲性色| 亚洲第一主播视频| 久久国产精品99久久久久久老狼| 亚洲人成在线播放| 国产色产综合产在线视频| 欧美国产丝袜视频| 欧美亚洲视频| av成人免费在线| 久久尤物电影视频在线观看| 99精品国产热久久91蜜凸| 国产亚洲一区在线| 欧美性大战xxxxx久久久| 久久夜色精品国产噜噜av| 亚洲色图自拍| 最新国产成人av网站网址麻豆| 久久国产精品久久精品国产| 一二美女精品欧洲| 亚洲电影在线观看| 国产日韩一区二区| 欧美视频一区二区| 欧美韩日视频| 久久蜜桃av一区精品变态类天堂| 亚洲香蕉网站| 9人人澡人人爽人人精品| 欧美激情久久久| 久久综合久久综合这里只有精品| 亚洲欧美日韩国产另类专区| 亚洲精品永久免费精品| 在线观看精品一区| 国产综合久久久久影院| 国产日韩欧美综合在线| 国产精品免费一区二区三区观看| 欧美日韩国产一级| 欧美电影免费观看高清| 久久综合狠狠综合久久综合88| 欧美一区二区三区免费观看| 99精品视频免费观看视频| 亚洲精品乱码久久久久久按摩观| 欧美va天堂| 麻豆精品视频在线观看视频| 久久久久久久一区二区三区| 欧美一二三视频| 西瓜成人精品人成网站| 亚洲欧美日本在线| 欧美一区二区大片| 性欧美精品高清| 欧美一区午夜精品| 久久精品夜夜夜夜久久| 欧美中文字幕不卡| 久久精品夜色噜噜亚洲a∨| 久久精品成人一区二区三区 | 亚洲欧美日韩国产综合精品二区| 一区二区免费在线视频| 在线视频日韩精品| 亚洲综合国产激情另类一区| 亚洲午夜电影网| 午夜免费在线观看精品视频| 亚洲欧美日韩成人高清在线一区| 性欧美18~19sex高清播放| 久久黄色网页| 久久婷婷综合激情| 欧美激情第3页| 91久久精品国产91性色tv| 亚洲精品免费一区二区三区| 一区二区欧美在线| 亚洲欧美国产制服动漫| 久久精品国产免费看久久精品| 久久免费99精品久久久久久| 欧美激情久久久| 国产精品高清网站| 国内精品久久久久伊人av| 在线欧美日韩国产| 在线视频亚洲| 久久久夜精品| 亚洲高清在线精品| 亚洲一本大道在线| 久久高清免费观看| 欧美高潮视频| 国产精自产拍久久久久久| 永久555www成人免费| 一区二区三区导航| 久久免费视频网站| 亚洲精品久久嫩草网站秘色| 亚洲欧美文学| 欧美3dxxxxhd| 国产精品亚洲欧美| 亚洲激情电影在线| 欧美亚洲一区三区| 欧美激情 亚洲a∨综合| 亚洲图片你懂的| 久热精品在线视频| 国产精品毛片a∨一区二区三区|国| 国产一区二区三区在线免费观看| 日韩午夜电影| 久久久青草婷婷精品综合日韩 | 亚洲天堂av图片| 久久乐国产精品| 欧美三级在线播放| 亚洲激情第一页| 欧美一区视频在线| 日韩亚洲一区二区| 久久婷婷色综合| 国产精品手机在线| 99v久久综合狠狠综合久久| 久久免费偷拍视频| 亚洲一区二区视频| 欧美精品自拍| 亚洲成人中文| 久久国产精品久久久久久久久久| 91久久在线视频| 久久中文字幕导航| 国产一区二区三区黄视频| 亚洲一区日韩在线| 亚洲人www| 蜜桃av一区二区在线观看| 国产一区二区三区四区五区美女 | 国产一区二区看久久| 亚洲社区在线观看| 亚洲激情欧美| 久久亚洲欧美| 韩国精品在线观看| 欧美一区在线直播| 亚洲深夜福利网站| 欧美日在线观看| 99riav国产精品| 亚洲国产一区二区三区a毛片| 久久久久久久久综合| 国产亚洲欧美一区二区| 欧美一区国产二区| 亚洲资源在线观看| 国产乱码精品一区二区三区不卡 | 激情小说另类小说亚洲欧美 | 久久精品视频免费播放| 国产精品最新自拍| 性高湖久久久久久久久| 亚洲一区二区黄| 国产精品免费aⅴ片在线观看| 亚洲一区www| 一本色道久久综合亚洲精品不卡 | 国产精品第十页| 亚洲综合二区| 在线视频欧美精品| 国产精品视频久久久| 欧美一区二区三区另类| 亚洲免费人成在线视频观看| 国产美女扒开尿口久久久| 久久国产一区二区| 久久精品在线视频| 亚洲国产经典视频| 亚洲国内高清视频| 欧美性猛交视频| 欧美在线免费| 久久精品动漫| 亚洲国产视频一区| 亚洲免费观看在线观看| 国产精品av免费在线观看 | 久久久久se| 久久午夜精品一区二区| 亚洲国产小视频在线观看| 亚洲成在人线av| 欧美日韩系列| 久久不射网站| 久久综合九九| 99国产一区| 午夜精品视频在线| 亚洲国产女人aaa毛片在线| 亚洲人成网在线播放| 国产精品乱码久久久久久| 久久综合中文字幕| 欧美经典一区二区三区| 欧美一区二区免费视频| 久久婷婷久久| 亚洲网友自拍| 久久久久国产精品一区| 一区二区久久久久|