快速乘冪

http://blog.sina.com.cn/s/blog_87cb8e680100so6o.html 第一個,是二進位分解法:舉例,求2的13次冪,13=8+4+1,所以2^13=2^1 * 2^4 * 2^8所以我們只用求2^1, 2^2, 2^4, 2^8,然後再做兩次乘法就可以了,總共要4+3=7次乘法代碼:int power(int a, int n) {int r=1,p=a;while(n>0) {int bit=n&1;if(bit == 1)r*=p;p*=p;

POJ-1703 find the, catch them 並查集

功夫不負有心人,改了一天,總算AC。並查集用來表示等價類別,這裡的等價類別是什嗎?是“關係可以確定”。如果A和B的關係可以確定,B和C的關係可以確定,則A,B,C之間的關係都能確定,所以該關係有傳遞性。等價關係其他的兩個性質也都滿足。在此基礎上,我們又引進一個數組表示關係到底是怎樣的,並在尋找和壓縮路徑的過程中更新。/* * poj- Find them, Catch them * mike-w * 2011-10-26 * --------------------------- * url:

hdu2068 RPG的錯排

hdu2068RPG的錯排 錯排詳解:http://blog.csdn.net/jiahui524/article/details/6624977...hdu2068思路:http://hi.baidu.com/owen563/item/90f206307cbeb32ab2c0c5cd...組合公式

poj1125Stockbroker Grapevine – floyd最短路

poj1125Stockbroker

hdu2680最短路Choose the best route

hdu2680Choose the best route 先將多個起點用一個超級源點串連 ,權值為0然後用dijkstra就可以得到結果了  #include<iostream>using namespace std;#define INF 100000000int mp[1010][1010],dist[1010];bool visit[1010];int main(){int

Aizu 1180 Recurring Decimals

Aizu 1180 Recurring Decimals 看到字串就頭疼啊。。。。超麻煩  //Aizu 1180 Recurring Decimals//字串 #include<iostream>#include<string>#include<algorithm>using namespace std;string aaaa[7]={"0","0","00","000","0000","00000","000000"};bool ba(char a,

pku 3259 Wormholes (Bellman ford判斷負權邊)

題目連結:  pku3259 Wormholes  之前在資料結構書上看了dijkstra 和floyed(從來沒有自己寫過) 但是有負權邊的一直不會 所以專門找了題目看看怎麼寫 感覺上bellmanford 跟 dijkstra 處理問題的關鍵步驟差不多都是不斷的鬆弛 但是bellmanford順序不同dijkstra是對每個點進行鬆弛 bellmanford則是對每一條邊進行鬆弛(實際上也是點,鬆弛有向線段的一個頂點) //pku 3259

hdu1596 find the safest road 最短路dijkstra

hdu1596 find the safest road  最短路程改為最大機率之前的INF,min,三角不等式都需要修改 #include<iostream>using namespace std;#define INF 10000000int N,visit[1010];double mp[1010][1010],dist[1010];double dij(int s,int t){int i,j,k;memset(visit,0,sizeof(visit)); visit[s]

HDU1319 & PKU3518 – Prime Cuts

#include<iostream>using namespace std;int list[1010]={0,1,2,3};int Find(int N) //小於N的素數的個數 {int i;for(i=1;i<=1000;i++)if(N<list[i]) {i--;break;}return i;

hdu1690 Bus System floyed最短路

hdu1690 Bus System  floyd中3個迴圈的順序弄反了 wa了一天 = = 正確順序應該是先 中間節點 k ,然後才是 i , j。   #include<iostream>using namespace std;int INF = -1; __int64 mp[110][110],location[110],N,M,L1,L2,L3,L4,C1,C2,C3,C4;int Price(__int64 x){if(x<=L1) return

hdu2112HDU Today dijkstra最短路

hdu2112HDU Today1.無向圖2.起點和終點可能是同一點,輸出為0#include<iostream>using namespace std;#define INF 1000000000int mp[160][160],visit[160],V;char name[160][35];int num(char t[]){int i;for(i=1;i<=V;i++){if(strcmp(t,name[i])==0){return i;}}strcpy(name[i],

hdu 1080 Human Gene Functions–DP

#include<stdio.h>char s1[110],s2[110];int d[110][110];int p[5][5]={{0,-3,-4,-2,-1},{-3,5,-1,-2,-1},{-4,-1,5,-3,-2},{-2,-2,-3,5,-2},{-1,-1,-2,-2,5}};int Max(int a,int b,int c){if(b>a)a=b;if(c>a)a=c;return a;}int dp(int m,int n){int i,j;i=1

uva10034Freckles – prime最小產生樹

一個分行符號的問題wr十幾次 - -各種debug誒   #include<stdio.h>#include<math.h>#define INF 1000000000struct point{double x,y;} P[105];double D(point a,point b){return sqrt((b.y-a.y)*(b.y-a.y)+(b.x-a.x)*(b.x-a.x));}double mp[105][105];int main(){int T,n,i,

codeforces 183 B Zoo–計算幾何+枚舉

/*題意:有n個望遠鏡,被放置在X軸1~n的位置上,現有m只鳥,望遠鏡可以以任何角度觀察,能看到在那條直線上的所有鳥,問所有望遠鏡能看到的鳥的數量之和計算幾何+暴力*/#include<stdio.h>#include<string.h>int n,m;int num[1000010];struct line//邊結構{__int64 a,b,c;};struct point//點{__int64 x,y;}niao[300];line ppline(point

hdu 1165 Eddy’s research II

/*Ackerman函數:當m=1時:A(1,n) = A(0,A(1,n-1)) = A(1,n-1)+1 = A(0,A(1,n-2))+1 = A(1,n-2)+2..... = A(1,n-n)+n = A(0,1)+n=n+2;當m=2時:A(2,n) = A(1,A(2,n-1)) = A(2,n-1)+2 = A(1,A(2,n-2))+2=A(2,n-2)+2*2... = A(2,

hdu3560Graph’s Cycle Component 並查集

看了那麼多題解  看不懂怎麼判斷環就算了 代碼還是錯的- -哎……一個大牛寫的 ,很簡單的思路http://yimaoblog.diandian.com/post/2011-02-22/18444418#notes  思想:並查集判斷部分的個數,用點的度來判斷是否是環,點構成環的充要條件是該環中每個點的度皆為2;       代碼流程:1、初始化每個點的度為0,每個點所屬集合(根節點)為其自身,標記值flag=1;                        

hdu1269–求強連通分量個數–tarjan–圖的靜態鄰接表

#include<stdio.h>#include<string.h>#include<stack>using namespace std;stack<int>s;int ret;struct node{int v,next;} e[100010];int ins[10010],fang[10010],head[10010],low[10010];int n,m,yong;void tarjan(int k){int

hdu2068 & hdu 2049 錯排組合

這部分涉及的知識為組合數和錯排 ,參考http://blog.csdn.net/jiahui524/article/details/6624977 比較簡單 hdu2068 #include<stdio.h>#include<math.h>__int64 C(int n,int m) //組合數公式{__int64 u,d,i; //組合數公式中的 分子u和分母dif(m>n/2) m=n-m;

hdu1506 & pku2559 Largest Rectangle in a Histogram

hdu1506&pku2559    #include<stdio.h>int H[100005],l[100005],r[100005];main(){__int64 max,area;int i,n;while(scanf("%d",&n),n){for(i=1;i<=n;i++){scanf("%d",&H[i]);l[i]=r[i]=i;}for(i=1;i<=n;i++)while(l[i]>1&&H[i]<=

總頁數: 61357 1 .... 21001 21002 21003 21004 21005 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.