這個系列貌似是掛在voj上的,傳送
好了, 下面開始魔法訓練 @_@..
poj 2443 set operation
題意:…
思路:
這個列舉就過了。。需要用到位壓縮。
poj 3244 difference between triplets(數學推導)
題意:
給n個(x, y, z)元組
define: d(i, j) = max(xi-xj, yi-yj, zi-zj) - min(xi-xj, yi-yj, zi-zj)
思路:
很好的數學題!
轉換: 把a,b,c看成數軸上的點,
則 max(a, b, c)-min(a, b, c) = ( |a-b|+|a-c|+|b-c| )/2
= (| (xi-yi)-(xj-yj) | + | (xi-zi)-(xj-zj) | + | (yi-zi)-(yj-zj) |)/2
= ( |n-m| + |n-l| + |m-l|)/2 (1)
(1)的式子可以排序後o(n)時間解決。
while (scanf("%d", &n) != eof && n)
sort(a, a+n);sort(b, b+n);sort(c, c+n);
ll ans = 0;
rep (i, 0, n-1)
printf("%i64d\n", ans/2);
}
poj 3685 matrix(二分巢狀)
題意:
給出乙個由矩陣,aij是下標的函式…
求矩陣中第k大
思路:
行不滿足單調性,但是每列是遞增的。
注意重複的元素!
1)第一重二分
二分答案 範圍[-inf, inf]
求出小於x的數小於等於k-1的上界。這就是答案。
2)第二重二分
列舉每一列,求小於x的數的個數
const ll c = 100000;
const ll mxx = 1ll<<50;
ll n, k;
inline ll calc(ll i, ll j)
int go(ll key) while (l1);
tmp = calc(l, j);
if (tmp >= key) continue;
cnt += r-1;
if (cnt > k-1) return
1; }
// debug
//cout << cnt << " elements less than "
<< key << endl;
if (cnt <= k-1) return -1;
return1;}
ll solve()
return l;
}
叉姐專場小記 scu 4290 4299
4290 xor 題意 給定a集合和b集合,集合中的個數都是奇數個,詢問是否存在x使得a集合中的每個數字異或後 使得和b集合相同。剛開始沒看懂是集合,坑了很久。剛開始不會做,被點播了,因為異或,所以a1 x a2 x b1 b2 0 又因為x奇數個,所以可以直接計算出x的數字,當然這個是計算出來的,...
矩陣 叉姐出的兩道Determinant
首先要做這兩道題,需要掌握的基礎知識有 余子式mi j 代數余子式ai j 伴隨矩陣 逆矩陣a 1 a a 1 逆矩陣存在條件 滿秩 行秩等於列秩 湘潭a題意 給乙個 n 1 n 的矩陣 對於每一列,求去掉這一列的餘下的 n 1 階行列式的determinant n的取值範圍為200 賽上思路 暴力...
dp的sst模式下training流程
本文講述dp在實際操作中的training流程 dp的版本 1.4 dp的模式 sst模式。這裡我就用我自己的理解說下,說的不對的請見諒。一 為啥要training?二 傳送training前的準備 1 要確定我們的aux通道是完好的。2 確定我們的高速通道是好,因為training流程也會用到高速...