a題:big number
題意:求階乘n的結果又多少位數。poj的資料比hdu難過點,但是hdu討論版的斯特林公式可以。我也不會證明,只能抄下來了咯。
#include#include#include#include#include#define max 10000005
using namespace std;
int a[max];//zhi
int b[max];//
int ans[max];
int main()
return 0;
}
b:
#include#include#include#include#include#include#include#define max 210
using namespace std;
int node[max][max];
int max;
bool cmp(int a,int b)//xiao
int getmax(int a,int n)//當前的max能不能滿足所有的陣列
else
now_max--;
} return max;
}int fun(int k)//第幾個點,返回這個點的值
for(int i=1;i<=node[k][0];i++)
sort(temp,temp+node[k][0],cmp);//有多少個點
return getmax(temp,node[k][0]);
}int main()
} printf("%d\n",fun(1));
} return 0;
}
c:monkeys' pride
求有多少個點,沒有其他點的x和y同時大於或等於這個點。先把所有點的x排序(x相同y大的大),然後從x最大的點開始往下遍歷,發現乙個y大於當前最大的y(從最大的x的y開始到最小的x),則表示這個點可以,sum++;理由:因為x從大到小遍歷。當前的x比沒有遍歷的點都大,且當前的y比已經遍歷的點的y都大,所以不存在同時大於該點x,y的點。
#include#include#include#include#define max 50050
using namespace std;
struct node a[max];
bool cmp(node a,node b)//大》小
int main()
}printf("%d\n",ans);
} return 0;
}
d:排列
求後面第k個字典序,使用stl的next_permutation水過,,但是注意提交要用c++提交,g++會迷之超時~。
#include#include#include#include#define max 1030
using namespace std;
/*g++會超時,c++不會超時*/
int a[max];
int main()
while(scanf("%s",temp)&&strcmp("******",temp))
while(1)
word=temp;
if(m[word])//有就輸出
}if(!flag)
printf("not a valid word\n");
printf("******\n");
} return 0;
}
h:就是求中位數;k 排序就好了,快排排序然後直接輸出。
i:487-3279
好像可以用字典樹寫,求號碼轉化後有多少個。大於1就直接輸出。我用map水過(提交c++才能過,g++超時,迷*2)
#include#include#include#include#include#include#include#define max 100010
using namespace std;
//先把鍵盤和數字對應儲存下來
char tab=;
mapm;//字典
struct nodeall[max];
bool cmp(node one,node two) //大》小
else
printf("%c-",temp[j]);
}printf(" %d\n",i->second);
} i++;
} if(!flag)
return 0;
}
l - babelfish
這題應該是雜湊函式吧,額,我選擇還是用map寫(內部好像是紅黑樹,效率蠻高的)。
這題應該考手寫雜湊吧,水題。
#include#include#include#include#include#include#includeusing namespace std;
mapm;//使用字典
int main()
a[i]='\0';
scanf("%s",b);
getchar();//吸收回車
ac=a;
wa=b;
m[wa]=ac; //構建字典
} while(scanf("%s",a)!=eof)
{ wa=a;
if(m.find(wa)!=m.end()) //在
{ cout《還有兩題也是水題,就不寫了。
03 排序演算法
直接移動 交換資料位置 邏輯移動 改變指標,更快 jmp len data 2 while jmp 0 插入排序 for i in range jmp,len data tmp data i j i jmp while j 0 and tmp data j data j jmp data j j j...
03 排序 氣泡排序
基本原理 顧名思義就是整個過程向氣泡一樣往上公升,單向氣泡排序的基本原理就是 對於給定的n個資料,從第乙個資料開始一次對相鄰的兩個記錄進行比較,當前面的記錄大於後面的記錄時,交換位置,進行一輪比較和換位後,n個記錄中最大的那個被排在最後,即第n位。然後對前面n 1個記錄進行第二次比較,重複該過程。實...
資料庫 03 排序查詢
高階3 排序查詢 語法 select 查詢列表 from 表 where 篩選條件 order by 排序列表 asc desc 注 1.預設公升序 2.一般放在最後面,limit字句除外 案例1 查詢員工資訊,要求工資從高到低排序 select from employees order by sa...