摘要:
qosrt的这种写法,很简单,也很好理解。 一开始没看懂,因为这一句swap(v, left, (left + right)/2); 后来转念一想,不是把left当成分割点,而是把(left+right)/2当分割点,恍然大悟。 代码如下:#include void swap(int v[], int i, int j) { int t = v[i]; v[i] = v[j]; v[j] = t;}void qsort(int v[], int left, int right) { int i, last; if(left >= right) ...
阅读全文
posted @ 2013-08-07 20:58
Still_Raining
阅读(221)
推荐(0)
编辑
摘要:
题目链接。分析:#include #include #include #include using namespace std;typedef unsigned long long LL;int main() { LL n, m; while(cin >> n >> m) { if(n == 0 && m == 0) break; LL s = n+m; if(n > m) swap(n, m); LL ans = 1; for(LL i=s, j=1; j<=n; i--, j++) { ...
阅读全文
posted @ 2013-08-07 16:20
Still_Raining
阅读(175)
推荐(0)
编辑
摘要:
题目链接。题目大意:就是数独游戏。横竖,每一个9宫方块,必须有1~9,且不重复。分析:直接DFS。一开始在原图上搜,会TLE。把要补全的空格,放入数组,这样就不用遍历整个图寻找要填的空格了。row, col, sq分别标记行,列,3*3方格是否重复。话说,直接做有人说反着搜(正着搜的意思就是从0~cnt-1,反着搜就是从cnt~0),试了试。AC代码如下:#include #include #include #include using namespace std;struct node { int x, y;}q[9*9+10];bool row[10][10], col[10][10...
阅读全文
posted @ 2013-08-07 14:39
Still_Raining
阅读(961)
推荐(0)
编辑