日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wenbao与acm技巧(必备知识)

發(fā)布時間:2024/6/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wenbao与acm技巧(必备知识) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

推薦博客:http://blog.csdn.net/xueerfei008/article/details/19029797 ? ?http://blog.csdn.net/xueerfei008/article/details/11834011

?

?

計算一個數(shù)中一的個數(shù)

?1 cout<<__builtin_popcount(7);?

?

?

提高速度

?1 std::ios::sync_with_stdio(false);?

?cin.tie(0),cout.tie(0);

?

程序運行時間

?

1 #include <stdio.h> 2 #include <time.h> 3 int main() { 4 clock_t start = clock(); 5 6 // Place your codes here... 7 for(int i = 0; i < 10000000; ++i){ 8 for(int j = 0; j < 100; ++j); 9 } 10 11 clock_t ends = clock(); 12 13 printf("Running Time :%lf\n", (ends - start) / CLOCKS_PER_SEC * 1000.0); 14 15 return 0; 16 }

?

?

?

哎。。忘記是求什么的了

(n*m-1)/(m-1)

?

?

?

1*n+2*(n-1)+3*(n-2)+…+n*1=n(n+1)(n+2)/6

?

1+2+3+…+n=n(n+1)/2
12+22+32…+n2=n(n+1)(2n+1)/6
13+23+33+…n3=n2(n+1)2/4=[n(n+1)/2]2
1^4+2^4+3^4+...+n^4=n(n+1)(2n+1)(3n^2+3n-1)/30
1*2+2*3+3*4+4*5+…+n(n+1)=n(n+1)(n+2)/3

?

?

PI值

?const double PI = acos(-1.0);?

?

?

@關(guān)于for:

1 //處理字符串的時候可以這樣寫———— 2 for(int i = 0; str[i]; i++) 3 4 //但是處理數(shù)組只能這樣寫(不然多組輸入的時候會有問題出現(xiàn),應(yīng)為memse只是清除字符串的t) 5 for(int i = 0; i < n; i++)

?

?

輸出到文本

?

1 #include <iostream> 2 using namespace std; 3 int main(){ 4 freopen("in.txt", "r", stdin); 5 freopen("out.txt", "w",stdout); 6 int a,b; 7 while(cin>>a>>b) cout<<a+b<<"\n"; 8 }

?

1 #include <fstream> 2 using namespace std; 3 ifstream fin("abc.txt"); 4 ofstream fout("abcd.txt"); 5 int main(){ 6 int a,b; 7 while(fin>>a>>b) fout<<a+b<<"\n"; 8 return 0; 9 }

?

?

?

?

@  關(guān)于memset

?

大牛博客:http://www.cnblogs.com/LLGemini/p/4309660.html

?

1 memset是用于字符串處理的,不再多說,那么處理int數(shù)組怎么辦呢?要怎樣處理呢? 2 // *******char 是一個字節(jié)而int是四個字節(jié) 3 memset(a, 0, sizeof(a)); // 正確 4 memset(a, 1, sizeof(1)); // 錯誤,字節(jié)問題初始化的值為:16843009 5 int型的最大值為 0x7f,所以可以 memset(a, 0x7f, sizeof(a)); 初始化為最大值,但是非常容易爆int; 6 最精巧的無窮大常量取值是0x3f3f3f3f,0x3f3f3f3f的十進制是1061109567,也就是10^9級別的,0x3f3f3f3f+0x3f3f3f3f=2122219134,沒有爆int; 7 8 所以說0x3f3f3f3f是最棒的選擇 9 0x3f3f3f3f的每個字節(jié)都是0x3f!所以要把一段內(nèi)存全部置為無窮大,我們只需要 10 memset(a,0x3f,sizeof(a)); 11 12 其他賦值: 13 memset(arr,0x7F,sizeof(arr)); //它將arr中的值全部賦為2139062143,這是用memset對int賦值所能達到的最大值 14 memset(arr,0x80,sizeof(arr)); //set int to -2139062144 15 memset(arr,0x7F,sizeof(arr)); //set double to 1.38242e+306 16 memset(arr,0xFE,sizeof(arr)); //set double to -5.31401e+303

?

?

@  int?  long long int 范圍

?

1 unsigned int 04294967295 0 ~ 4*10^9; 2 int -21474836482147483647 -1*2*10^9 ~ 2*10^9; 3 unsigned long 04294967295 0 ~ 4*10^9; 4 long -21474836482147483647 -1*2*10^9 ~ 2*10^9; 5 long long的最大值:9223372036854775807 9*10^18; 6 long long的最小值:-9223372036854775808 -1*9*10^18; 7 unsigned long long的最大值:18446744073709551615 1*10^19; 8 9 __int64的最大值:9223372036854775807 9*10^18; 10 __int64的最小值:-9223372036854775808 -1*9*10^18; 11 unsigned __int64的最大值:18446744073709551615 1*10^19;

?

?

?@  用c++11編譯

    g++ -std=c++11 y.cpp -o y

?

@  強制轉(zhuǎn)化

    1LL

?

?

@  n的階乘的位數(shù)

?

  @@  斯特林公式

      

      更加精確的近似公式為:

        

      其中

        

?

?

?

?

利用斯特林(Stirling)公式求解n!的位數(shù):

易知整數(shù)n的位數(shù)為[lg10(n)]+1.?
用Stirling公式計算n!結(jié)果的位數(shù)時,可以兩邊取對數(shù),得:?
log10(n!) = log10(2*PI*n)/2+n*log10(n/E);?
故n!的位數(shù)為

res=log10(2*PI*n)/2+n*log10(n/E)+1

或者為:

long result = (long)((log10(sqrt(4.0*acos(0.0)*n))+n*(log10(n)-log10(exp(1.0))))+1);?(編程更方便)

(注意:當(dāng)n=1時,算得的結(jié)果為0)

n!的估計:

在高德納的《計算機程序設(shè)計藝術(shù)》一書中,對n!的估計:?
n! = sqrt(2*π*n) * ((n/e)^n) * (1 + 1/(12*n) + 1/(288*n*n) + O(1/n^3));

?

?

?

?

  x = log10N!

long result = (long)((log10(sqrt(4.0*acos(0.0)*n))+n*(log10(n)-log10(exp(1.0))))+1);

?

1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int main(){ 5 int n, t; 6 cin >>t; 7 while(t--){ 8 cin>>n; 9 if(n==1) cout<<1<<endl; 10 else{ 11 long result = (long)((log10(sqrt(4.0*acos(0.0)*n))+n*(log10(n)-log10(exp(1.0))))+1); 12 cout<<result<<endl; 13 } 14 } 15 return 0; 16 }

?

?

?

@  memcpy函數(shù)

  memcpy(a, b, sizeof(a));

  將b賦值給a,b是源

?

?

@  必備數(shù)學(xué)知識

大牛博客:http://blog.sina.com.cn/u/2056445344

?

求與?y=-x-1,?y=x-1,?y=0?三條直線相切的拋物線的方程

?

?

三角形垂心坐標(biāo)公式

?

?

三角形重心坐標(biāo)公式及歐拉線

平面三角形外心坐標(biāo)公式

?

平面三角形內(nèi)心坐標(biāo)公式

?

注:若在上述去絕對值時,適當(dāng)?shù)刈儎臃?#xff0c;可以推是其他三個旁心坐標(biāo)公式。實質(zhì)上內(nèi)心與旁心是一樣的!旁心是內(nèi)心的延伸,內(nèi)心是到三邊所對應(yīng)的線段,而旁心是三邊所對應(yīng)的直線。

?

?

?

?

?

?

斐波那契額數(shù)列

?

?

字符輸入

1 char read(){ 2 char ch; 3 for(;;){ 4 ch = getchar(); 5 if(ch >= 'A' && ch <= 'Z') return ch; 6 } 7 }

?

for循環(huán)

??1 #define REP(i, n) for(int i = 0; i < n; i++)?

?

組合數(shù)學(xué)

?

?1 C(n+1, k+1) = C(n, k) + C(n, k+1)

2 C(n, k+1) = C(n, k)*(n-k)/(k+1)?

?

只有不斷學(xué)習(xí)才能進步!

?

轉(zhuǎn)載于:https://www.cnblogs.com/wenbao/p/5727729.html

總結(jié)

以上是生活随笔為你收集整理的wenbao与acm技巧(必备知识)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。