锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
涓篬l,r]鍖洪棿鍐呮湁澶氬皯涓暟鏄尯闂碵x,y]涓殑鏁扮殑鍜?br /> 1 <= x, y, l, r <= 10^8 x <=y, l <= r
濡傛灉鑼冨洿娌¤繖涔堝ぇ鐨勮瘽錛屽[x,y]榪檡-x+1涓墿鍝佽繘琛屽畬鍏ㄨ儗鍖咃紝鎵懼嚭瑕嗙洊浜?jiǎn)閭d簺浣嵕|?br /> 鐜板湪鏁版嵁榪欎箞澶э紝鑳屽寘涓嶅彲琛?br /> 浣嗘槸錛屾敞鎰忓埌[x,y]榪欐槸涓涓繛緇殑鍖洪棿錛屽彲浠ョ畻鍑轟粬浠細(xì)瑕嗙洊鐨勬暟鏄細(xì)
[x,y] , [2x,2y] [kx, ky]
榪欐牱鐨勮瘽錛屾垜浠鎵炬弧瓚砙l,r]涓殑鏁幫紝鍙鐢╢[r] - f[l-1]
f[x]琛ㄧず[1,x]涓涓婇潰閭d簺鏁拌鐩栫殑涓暟
瑕佹敞鎰忕殑鏄紝鏈夊彲鑳絒(k-1)x, (k-1)y]涓嶽kx,ky]鏈夐噸鍙犻儴鍒嗭紙鍗?k-1)y>=kx錛?br /> 鍙涓寮濮嬮噸鍙犱簡(jiǎn)錛屼箣鍚庣殑鎵鏈夌偣閮戒細(xì)琚鐩栦簡(jiǎn)
鏁版嵁姣旇緝澶э紝鏈変簺鍒ゆ柇闇瑕佺敤double
*/
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#include<cmath>
#include<string>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<set>
#include<list>
#include<numeric>
#include<cassert>
#include<sstream>
#include<ctime>
#include<bitset>
#include<functional>
using namespace std;
long long gao(long long x, long long y, long long z, long long k)
{
long long l = 0, r = z;
while (l <= r) {//find first l*y >= z
long long m = (l+r)/2;
if ((double)m*y < z) l = m+1;//瑕佺敤double
else r = m-1;
}
long long ans = 0;
//[x,y] [2x,2y] [(l-1)x, (l-1)y], [lx, ly]
if (l >= k) {
ans = (y-x)*(k-1)*k/2 + (k-1) + (k*x > z ? 0 : z-k*x+1);
} else {
ans = (y-x)*(l-1)*l/2 + (l-1) + (l*x > z ? 0 : z-l*x+1);
}
return ans;
}
int main()
{
#ifndef ONLINE_JUDGE
//freopen("in.txt","r",stdin);
#endif
for (long long x, y, l, r; cin>>x>>y>>l>>r; ){
if (r < x ) {
cout<<0<<endl;
continue;
}
if (x == y) {
cout<<r/x - (l-1)/x << endl;
continue;
}
long long lk = 1, rk = y;
while (lk <= rk) {
long long mk = (lk+rk)/2;
//瑕佺敤double
if ((double)mk*x > ((double)mk-1)*y) lk = mk + 1;
else rk = mk-1;
}
//[rk*x, oo)
cout<<gao(x, y, r, rk) - gao(x, y, l-1, rk)<<endl;
}
return 0;
}
]]>
n涓暟錛屾眰鏈闀跨殑榪炵畫(huà)涓孌碉紝浣垮緱榪欎竴孌墊暟瀛楋紝浜岃繘鍒朵腑姣忎竴浣嶆嫢鏈?鐨勯偅浜涙暟瀛楃殑涓暟鐩哥瓑
n<=10^5錛屼綅鏁発<=30
濡?br />
7 2 1 4 榪欓噷姣忎竴浣?閮芥湁2涓暟瀛楁嫢鏈?br />
瀹規(guī)槗鎯沖埌鍏堥澶勭悊鍑簊um[n,k]琛ㄧず鍓嶉潰n涓暟瀛椾腑鍦ㄧk浣嶆槸1鐨勪釜鏁?br />
榪檏涓暟瀛梥um[n,k]鐨勬牱瀛愬氨鏄洸綰垮艦鐨勶紝濡俿um[i,k]涓?nbsp;
_ /\
/ \/ \_/\
涓轟簡(jiǎn)浣垮緱sum[i,k] - sum[j,k]瀵規(guī)墍鏈塳閮芥槸鍚屼竴涓暟
鍒檚um[j,k]鐨勬牱瀛愪篃蹇呴』鏄繖鏍風(fēng)殑錛岃繖鏍穝um[i,k] - sum[j,k]鎵嶆槸涓涓悓涓涓暟錛堢被浼兼嫾鎺ユ椂鍥懼艦闇鍚誨悎錛?br />
濂戒簡(jiǎn)錛屾墍浠ユ垜浠渶瑕佷繚瀛樿繖涓浘褰紝鍙互閫氳繃淇濆瓨a[i,k] = sum[i,k] - sum[i,0]鍗沖彲錛堝嵆淇濆瓨鐩稿鍊鹼級(jí) -----OMG
鎴戜竴寮濮嬬敤map<vector<int>, int>錛?nbsp;vector<int>鏄繚瀛樺浘褰紝int鏄繚瀛樼涓嬈″嚭鐜扮殑鍦版柟
鍦╢or鍒癷鏃訛紝璁$畻鍑哄浘褰紝鍦╩ap涓壘鏈夋病鍑虹幇榪囷紝鏈夌殑璇濆氨鏇存柊絳旀涓篿-mp[vt]
vector鏄湁閲嶈澆姣旇緝榪愮畻絎︾殑錛屾墍浠ヤ笉鐢ㄥ啓鍏朵粬
浣嗘槸瓚呮椂浜?jiǎn)锛屾垜鍦ㄦ湰鏈簨箣璨屼奸g笉浼?xì)瓒呮?img src="http://www.shnenglu.com/Images/dot.gif" alt="" /> --||
鐪嬩簡(jiǎn)瑙i鎶ュ憡錛屾柟娉曚竴鏍鳳紝浣嗘槸涓嶆槸鐢╩ap錛屾槸鏈鍚巗ort涓嬈$殑
瀵瑰摝錛屾垜鎯寵搗涔嬪墠涔熸湁涓閬撻錛屽張涓嶉渶瑕佹瘡涓猧閮借緭鍑虹粨鏋滐紝涓嶇敤map錛岀洿鎺ユ渶鍚巗ort涓嬈℃洿濂?br />
鐢╩ap浼?xì)鎱竴鐐?br />
浣嗚繖鏍瘋繕瓚呮椂錛屽師鏉ユ槸vector鐨勬瘮杈冩瘮杈冩參
鑷繁鍐欎簡(jiǎn)涓猻truct Node {int vt[30];}; 鍐嶉噸杞芥瘮杈冭繃浜?br />
sort鏃訛紝鍙互瀵逛笅鏍囨帓搴忥紝鍑忓皯浜?jiǎn)澶ф暟鎹U誨姩
榪欓瀹樻柟鏈夊彟澶栬В娉曪紝灝辨槸瀵規(guī)暟緇剉t[30] hash
濂界殑hash鍑芥暟浼?xì)蹇緢澶氬?br />
hsize=997001;
for(p=0,i=0;i<k;i++)
p=((p<<2)+(v[i]>>4))^(v[i]<<10);
p=p%hsize;
if(p<0) p+=hsize;
*/
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#include<cmath>
#include<string>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<set>
#include<list>
#include<numeric>
#include<cassert>
#include<sstream>
#include<ctime>
#include<bitset>
#include<functional>
using namespace std;
const int MAXN = 100100;
int n, k;
struct Node
{
int vt[30];
void clear()
{
memset(vt, 0, sizeof vt);
}
};
bool operator < (const Node &A, const Node &B) //鐩存帴鐢╲ector鐨勬瘮杈冧細(xì)鎱?img src="http://www.shnenglu.com/Images/dot.gif" alt="" /> 鍙兘鏁版嵁澶ぇ鍚?/span>
{
for (int i = 0; i < k - 1; i++) {
if (A.vt[i] != B.vt[i]) {
return A.vt[i] < B.vt[i];
}
}
return false;
}
pair<Node, int> all[MAXN];
inline bool cmp(const int &a, const int &b)
{
return all[a] < all[b];
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in","r",stdin);
#endif
for (; ~scanf("%d%d", &n, &k); ) {
// long long start = clock();
vector<int> vt(k-1), pos(n+1);
all[0].first.clear();//don't forget to push k-1 zeros
all[0].second = 0;
pos[0] = 0;
vector<int> sum(k);
for (int i = 1, x; i <= n; i++) {
scanf("%d", &x);
for (int j = 0; j < k; j++) {
sum[j] += (x>>j) & 1;
if (j > 0) {
all[i].first.vt[j-1] = sum[j] - sum[j-1];
}
}
all[i].second = i;
pos[i] = i;
}
sort(pos.begin(), pos.end(), cmp);
int ans = 0;
for (int i = 1, last = 0; i <= n+1; i++) {
if (i == n+1 || all[pos[i-1]].first < all[pos[i]].first) {
ans = max(ans, all[pos[i-1]].second - all[pos[last]].second);
last = i;
}
}
printf("%d\n", ans);
// cout<<"time "<<clock() - start<<endl;
}
return 0;
}
]]>/**//*
濡傛灉鎵紺虹殑6杈瑰艦鍥撅紝璇㈤棶鍗婂緞涓簉鐨勫渾鑳藉畬鏁村寘鍚灝戜釜6杈瑰艦
涓寮濮嬫兂鎵捐寰嬶紝wa
鐪嬩簡(jiǎn)瑙i鎶ュ憡錛岃В娉曞緢濂?img src="http://www.shnenglu.com/Images/dot.gif">.
鍏堝悜涓婃壘鍒版渶楂樼殑琚畬鍏ㄥ寘鍚殑6杈瑰艦錛岀劧鍚庡線鍙充笂璧?br>
鑻ュ彸涓婅秺鐣屼簡(jiǎn)錛屽氨涓嬩竴灞?img src="http://www.shnenglu.com/Images/dot.gif">.灝辮繖鏍?img src="http://www.shnenglu.com/Images/dot.gif">.涓杈硅蛋涓杈圭粺璁?img src="http://www.shnenglu.com/Images/dot.gif"> ---------------------OMG
鑻ヤ互涓棿閭e潡鐨勪腑蹇?jī)湄?fù)鍧愭爣鍘熺偣鐨勮瘽錛屽彲浠ュ彂鐜版墍浠ュ叚杈瑰艦鐨勯《鐐圭殑鍧愭爣浼?xì)鏄?1/2x, sqrt(3)/2y)
濡?0.5, sqrt(3)/2)絳夛紝榪欓噷x,y鏄暣鏁?br>
涓嶈秴榪囧渾灝辨湁x*x + 3*y*y <= 4*r*r
鐒跺悗x,y鍙互鐢ㄦ暣鏁扮偣鍘昏蛋錛岀敤涓婇潰鐨勮〃杈懼紡鍘誨垽鍑虹晫
浠g爜鏄湅絎竴鍚嶇殑閭d釜~~~Orz
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
//freopen("in", "r" ,stdin);
for (long long r; cin >> r;)
{
long long ans = 0;
long long x = 1, y = 1;
while (x*x + 3*y*y <= 4*r*r)
{
y += 2;
}
y -= 2;
ans += y;
//鍙充笂瑙掗偅鍧?/span>
y += 1;
x += 3;
while (y >= 0)
{
if (x*x + 3*y*y <= 4*r*r && (x+1)*(x+1) + 3*(y-1)*(y-1) <= 4*r*r )
{
ans += 2*y;
y += 1;//寰鍙充笂
x += 3;
} else
{
y -= 2;//涓嬫潵涓鏍?/span>
}
}
cout<< ans << endl;
}
return 0;
}
]]>/**//*
緇欏嚭A,B ,姹俋,Y錛屼嬌寰?nbsp;A = X + Y, B = X xor Y銆傝浣垮緱X鏈灝忥紝鑻ヤ笉瀛樺湪杈撳嚭-1
0<=A,B<2^64
鐪嬩簡(jiǎn)瑙i鎶ュ憡鐨勶紝鎸哄閥鐨勶紝鍒囧叆鐐規(guī)槸錛?#8220;浣垮緱X鏈灝?#8221; -----------------OMG
鑻?X,Y)鏄弧瓚蟲(chóng)潯浠剁殑涓瀵規(guī)暟錛屽垯媯(gè)鏌ユ瘡涓浣?br>
鑻i = 1, Yi = 0 鍒欏彲浜ゆ崲榪欎袱浣嶏紝涓婇潰鐨勭瓑寮忚繕鏄垚绔嬶紝浣嗘槸X鍑忓皬浜?jiǎn)锛孻澧炲ぇ浜?br>
瀹屾垚涓婇潰鐨勬搷浣滃悗錛?X,Y)鐨勬儏鍐靛彧鑳芥槸(0,1),(0,0),(1,1)
鍒欐湁 Y - X = X xor Y = B -------------------OMG
鎵浠?nbsp;X = (A-B)/2 , Y = (A+B)/2
宸т斧
..
*/
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<cmath>
#include<string>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<set>
#include<list>
#include<numeric>
#include<cassert>
#include<ctime>
#include<bitset>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("in","r",stdin);
#endif
for (unsigned long long A, B; cin>>A>>B; )
{
//A = X + Y, B = X ^ Y . X is minimal
//swap(xi,yi) if xi = 1 and yi = 0, the equalities above mantian.
//after all the swaping, we can find that
//(xi,yi) can only be (0,1) , (0,0), (1,1)
//so X ^ Y = Y - X = B
if (((A&1) ^ (B&1)) || A < B)
{
cout << -1 << endl;
} else
{
cout << (A-B)/2 <<" "<< (A+B)/2<<endl;
}
}
return 0;
}
]]>
]]>/**//*
Jeep闂
http://en.wikipedia.org/wiki/Jeep_problem
http://topic.csdn.net/t/20020906/13/1001713.html
涓杞﹁絀胯秺娌欐紶錛岃窛紱諱負(fù)dist,娌圭鑳借鐨勬補(bǔ)tank錛屾瘡琛岃蛋1鍗曚綅鑰楁補(bǔ)1鍗曚綅
杞﹀彲浠ヨ椹跺埌涓棿涓浜涗綅緗紝鏀句竴浜涙補(bǔ)鏂逛究浠ュ悗鐢ㄥ啀鍥炲幓鍔犳補(bǔ)錛岃搗鐐規(guī)湁鏃犻檺鐨勬補(bǔ)鍙互鍔?br>
闂渶灝戣楃殑娌硅蛋瀹岃繖涓孌佃礬
杞︾殑杞ㄨ抗濡備笅錛屽亣璁句腑闂存湁n涓綅緗斁浜?jiǎn)嫜a(bǔ)
S ---->鈼?br>
<---
--------------->鈼?br>
<---------------
---------------------------------------->鈼?br>
<---------------------------------------
--------------------------------------------------------------------------> E
wiki涓婄殑璇存硶鏄紝鍋囪娌圭瀹歸噺涓?
絎竴嬈¤椹?/(2n-1),鐒跺悗鍦ㄧ涓涓姞娌圭珯鏀?-2/(2n-1)鐨勬補(bǔ),鍐嶇敤鍓╀笅鐨?/(2n-1)鍒氬ソ鍥炲埌S
浠ュ悗鐨勮椹朵腑錛岃鍒扮涓涓姞娌圭珯鏃訛紝鍔?/(2n-1)鐨勬補(bǔ)錛屾墍浠ユ補(bǔ)綆辮繕婊★紝鐒跺悗鍐嶅洖鍒扮涓涓姞娌圭珯鏃訛紝
鍙?/(2n-1)錛屽氨鑳藉洖鍒癝浜?br>
鎵浠涓庣涓涓姞娌圭珯鐨勮窛紱誨氨鏄?/(2n-1)
鑰岀浜屼釜鍔犳補(bǔ)绔欎笌絎竴涓殑璺濈錛屽氨鏄?/(2n-3)浜?nbsp; 鍥犱負(fù)浠庣涓涓補(bǔ)绔欏嚭鍙戞椂娌規(guī)槸婊$殑錛岃琚彇2n-3嬈?br>
絎笁涓笌絎簩涓負(fù)1/(2n-5)
.
鍒頒簡(jiǎn)鏈鍚庝竴涓補(bǔ)绔欐椂錛屽姞娌瑰悗灝辨槸婊$殑錛屼竴鐩村紑瀹屽埌E
鎵浠ユ渶鍚庝竴涓補(bǔ)绔欑E涓?
涓婂浘灝辮鏄庯紝鍒拌揪涓涓補(bǔ)绔欐椂錛屽畠鐨勬補(bǔ)鑲畾鏄弧鐨勶紙鍙栬蛋榪囨潵鐨勫悇涓補(bǔ)绔欑殑涓浜涙補(bǔ)濉厖榪欎竴璺秷鑰楃殑娌癸級(jí)
絳旀灝辨槸錛屼粠E寰S
璧扮殑璺濈1 + 1/3 + 1/5
+ 1/(2n-1)
褰撶劧錛孲紱葷涓涓補(bǔ)绔欑殑璺濈鍙互灝忎簬1/(2n-1)
round up 鏄彇涓婄晫
foj 1076涓鏍風(fēng)殑
鍙﹀涓縐峧eep闂灝辨槸瑕佹眰鏈鍚庡洖鍒癝鐨勶紝璧扮殑璺濈1+1/2+1/3
*/
#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<cmath>
#include<string>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<set>
#include<list>
#include<numeric>
#include<cassert>
#include<ctime>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("in","r",stdin);
#endif
double dist, tank;
scanf("%lf%lf", &dist, &tank);
double now = dist, cost = 0, pre;
int k = 1;
while( (pre = now - tank / (2*k-1)) > 0)
{
cost += tank;
now = pre;
k++;
}
cost += now * (2*k-1);
printf("%.0f\n", ceil(cost));
return 0;
}
]]>
]]>
http://hi.baidu.com/topman3758/blog/item/a19e4af91effb975034f56d2.html
鍒漢璇寸殑綆鍗昫p錛屾垜閮戒笉浼?xì)鍋?...#_#
棰樼洰緇欏嚭涓涓覆n<=1000 涓插彧浼?xì)鍑虹幇a,b,c涓夌瀛楃
abc鎴朾ca鍙垏鎴愪竴鍧?br> 璁炬渶鍚庡垏鍑簃0涓猘bc , m1涓猙ca錛屽垯絳旀涓簃in{m0,m1}
姹傝瘯絳旀鏈澶?/p>
dp[i,j]琛ㄧず鍓嶉潰i涓瓧絎﹀垏鍑轟簡(jiǎn)j涓猘bc錛岃兘鑾峰緱鐨勬渶澶歞p[i,j]涓猙ca
杞Щ鏄湅鏈鍚庤繖涓笁涓瓧姣嶆槸浠涔?br> dp[i-3,j-1] “abc”
dp[i-3,j]+1 "bca"
dp[i-1,j]
娉ㄦ剰dp[i,j] 3*j<=i 錛?瀵逛簬涓嶅瓨鍦ㄧ殑鍊間笉鑳藉紩鐢紝鍚﹀垯浼?xì)鍑洪敊锛佸Q?/p>
璨屼技榪欑鏈変袱涓姹傚肩殑錛岄兘鏄鎴愪竴涓凡鐭?br> 濡傝繖閲屽墠i涓紝鏈塲涓猘bc
*/
zoj 3449
/*
涓涓暟瀛梐錛堟渶澶?00000浣嶏級(jí)錛屾湰鏉 = 鈭慳i*10^i錛屼笉鏂彉?shù)负a' = 鈭慳i*x^i (x=1,2...9) 銆?/p>
鐩磋嚦a‘<10 錛屾眰姝ゆ椂鐨刟'
姣旇緝鍙樺寲鍓嶅悗鐨勭粨鏋滐紝鍙戠幇鍙樺寲鍚庡噺灝戜簡(jiǎn)鈭慳i(10^i-b^i)
涓寮濮嬫垜灝辯敤Java澶ф暣鏁板幓閫艱繎錛堝噺鍘?0^i-b^i錛夛紝浣垮緱緇撴灉瓚嬭繎浜?0涓斿皬浜?0
瓚呮椂浜?/p>
鐪嬩簡(jiǎn)watashi鐨勶紝鈭慳i*10^i = 鈭慳i*x^i (mod 10-x)
“浜庢槸鎴戜滑鐭ラ亾瀵?0-b姹傛ā鏄叧浜庤繖縐嶈繍綆楃殑涓嶅彉閲忥紝鍙互鍙戠幇絳旀灝辨槸b+(n-10)%(10-b)”
鍏跺疄鎴戜箣鍓嶇殑閭d釜涓嶆柇閫艱繎錛屽叾瀹炲氨鏄?mod 10 - x 鑰屽凡錛岃剳孌嬩簡(jiǎn)錛侊紒錛?/p>
鍥犱負(fù)(a^n - b^n) % (a-b) = 0
鍙互鍑犱綅鍚堝湪鍐峬od浼?xì)蹇?/p>
鏈鍚庣粨鏋滆涓嶆柇鍔犱笂10-x錛屼嬌寰楅艱繎浜?0
*/
zoj 3450
/*
涓涓畾鐐筽0錛宯涓洰鏍囩偣 錛屾瘡涓洰鏍囩偣鏈夋晫浜簑i,瑕佹秷鐏鐐歸渶瑕乼i鏃墮棿
寮辯洰鏍囩偣鍦ㄥ悓涓鐩寸嚎錛屽繀欏誨厛娑堢伃榪戠殑鎵嶈兘娑堢伃榪滅殑
闂湪T鏃墮棿鍐呮渶澶氳兘娑堥櫎鐨勬晫浜?/p>
鍒嗙粍鑳屽寘
娉ㄦ剰鐨勬槸錛屽潗鏍囨瘮杈冨ぇ錛岀敤double浼?xì)绮惧害涓嶅?/p>
鐪嬩簡(jiǎn)watashi鐨勫仛娉?/p>
浠栧皢鍧愭爣閮介櫎浠ヤ粬浠殑gcd 錛岀浉絳夌殑灝辨槸鍚屼竴鐩寸嚎浜?jiǎn)锛岃実cd灝辯敤鏉ュ垽鏂窛紱諱簡(jiǎn)錛侊紒
榪欐牱灝嗗ぇ鏁板彉灝忎簡(jiǎn)錛侊紒錛?/p>
娉ㄦ剰鐨勬槸gcd(abs(x),abs(y))瑕佸姞緇濆鍊?/p>
*/
zoj 3451
/*
緇欏嚭瓚崇悆璧風(fēng)偣鍧愭爣錛屽垵閫熷害澶у皬錛屽垵閫熷害鏂瑰悜錛岄棶鐞冭兘涓嶈兘榪涖?/p>
鐞冩瘡紕板湴涓嬈¢熷害鍑忓崐
鍙傝僿atashi鐨?/p>
娉ㄦ剰鏈夊姏閲忎笉瓚崇殑鎯呭喌
*/
zoj 3354
/*
緇欏嚭涓縐嶆槧灝刦,闂竴涓簭鍒楃粡榪囦換鎰忔鏄犲皠鐨勫鍚堬紝闂兘寰楀埌澶氬皯縐嶄笉鍚岀殑鏂囨湰
"he may encrypt the letter for several times. "
here may be ai=aj when i≠j. 涓嶆槸涓涓鏄犲皠
濡傛灉鏄竴涓鏄犲皠鐨勶紝灝辨槸涓涓竴涓殑鐜簡(jiǎn)錛堝洜涓哄嚭搴︺佸叆搴︿負(fù) 1錛?/p>
鐪媤atashi鐨?/p>
榪欓灝卞彉鎴愮幆寮曞嚭灝懼反鍑烘潵浜?/p>
絳旀灝辨垚浜?jiǎn)锛?xì)max{x[i]} + LCM{y[i]}
x[i]涓哄熬宸撮暱搴︼紝y[i]涓虹幆闀垮害
娉ㄦ剰姹倄[],y[]鏁扮粍鐨勬柟娉曪紝鐢ㄦ爤
鑰屾眰LCM鏃訛紝瑕佸垎瑙h川鍥犲瓙鎵嶈
鍥犱負(fù)LCM(a%MOD,b%MOD) != LCM(a,b)%MOD
*/
cf 56E
/*
n寮犲綾寵楠ㄧ墝鎺掓垚涓琛岋紝姣忎竴寮犲湪浣嶇疆xi錛岄珮搴︿負(fù)hi
瀹冨掍笅鐨勮瘽浼?xì)濯?jiǎng)鍝嶅埌[xi,xi+hi-1]錛岄棶姣忓紶楠ㄧ墝鏈澶氳兘褰卞搷鍙寵竟鐨勫灝戝紶楠ㄧ墝
浠p[i]琛ㄧず絎琲寮犻鐗岃兘褰卞搷鍒扮殑鏈榪滅殑楠ㄧ墝涓篸p[i]
dp[i] = max{dp[j]} x[i] <= x[j] <= x[i] + h[i] - 1
鍒欑i寮犻鐗岃兘褰卞搷鍒扮殑楠ㄧ墝鏁扮洰涓篸p[i] - i + 1
鎴戜竴寮濮嬬敤綰挎鏍?wèi)鎼炲Q岀敤鍗曡皟闃熷垪涔熻
鐪嬩簡(jiǎn)鍒漢浠g爜錛岀濂囷紝鐩存帴綆楀氨琛屼簡(jiǎn)
絎琲寮犻鐗岋紝媯(gè)鏌ョ殑鑼冨洿鏄痆x[i],x[i]+h[i]-1]
濡傛灉鍦ㄦ鏌ヨ繃紼嬩腑鍙戠幇j錛屽叾涓璬p[j]鑳藉獎(jiǎng)鍝嶇殑鏈榪滆寖鍥村凡緇忚秴榪噚[i]+h[i]-1鐨勮瘽錛屽氨涓嶇敤鍐嶆鏌涔嬪悗鍒皒[i]+h[i]-1
鐨勯鐗屼簡(jiǎn)錛屽洜涓轟粠x[j]鍒皒[i]+h[i]-1鐨勫凡緇忚j鑰冭檻榪囦簡(jiǎn)錛堜篃鍙涓烘槸j鍒皒[i]+h[i]-1鏈鍚庡彧浼?xì)鏀舵暃鍒癲p[j]錛?/p>
鐩存帴return dp[j]鍗沖彲
鍙嶄箣錛岃嫢鏈秴榪囷紝鍒欎護(hù) j = dp[j] + 1
璺寵穬鎬ф鏌?/p>
錛堣涓簀鍒癲p[j]鏀舵暃鍒癲p[j]浜?jiǎn)锛屾墍浠ヤ笅嬈℃鏌p[j]+1錛?/p>
*/
CF57D
/*
棰樻剰錛歯,m鐨勭綉鏍鹼紝鏈変竴浜泂tatic particles錛岃瀹氫換鎰忎袱涓笉鑳藉湪鍚屼竴琛屻佸垪錛屼笉鑳藉湪鐩擱偦鐨勫瑙掔嚎
A dynamic particle閫夋嫨闈瀞tatic鐨刢ell浣滀負(fù)璧風(fēng)偣鍜岀粓鐐癸紝鐒跺悗浠庤搗鐐歸夋嫨鏈鐭礬寰勮蛋鍒扮粓鐐癸紙涓嶇粡榪?br> static particles錛夈傞棶騫沖潎璺暱
鍙傝瑙i鎶ュ憡錛?a X'鍒版墍鏈夌偣璺濈鍜?2 + 'X'鍒?X'璺濈鍜?2
榪欓噷澶氬噺浜?鍊?X'鍒?X'鐨勶紝鎵浠ヨ鍔犱笂
鏈鍚庯紝鍐嶅姞涓婂洜涓?X'瀛樺湪瑕佺粫璺渶瑕佸鍔犵殑璺濈
*/
CF 58D
/*
棰樻剰錛歯涓崟璇嶏紙lowercase錛夛紝鍏堣鍒嗘垚n/2琛岋紝姣忚2涓崟璇嶏紝涓や釜鍗曡瘝鐢ㄥ垎闅旂d闅斿紑
瑕佷嬌寰楁墍鏈夎涓茶搗鏉ュ瓧鍏稿簭鏈灝忥紝闂浣曞畨鎺掓瘡涓よ鐨勫崟璇?br>
鍒嗛殧絎鍙互<'a' , > 'z'
鑻ュ凡鐭ョ涓涓崟璇嶏紝閭d箞瑕佷嬌瀛楀吀搴忔渶灝忥紝絎?涓崟璇嶈偗瀹氭槸闀垮害涓篴vg-lena涓瓧鍏稿簭鏈灝忕殑鍗曡瘝
avg鏄瘡涓琛屼袱涓崟璇嶇殑闀垮害鍜?br>
鍙互鍏堟寜鐓?鍗曡瘝+d 鏉ユ帓搴忥紝鐒跺悗鎸変粠灝忓埌澶у畨鎺?br> 姣忎釜鎺掑湪鍓嶉潰鐨勫崟璇嶏紝鐒跺悗鍔犱笂闀垮害涓篴vg-lena涓瓧鍏稿簭鏈灝忕殑鍗曡瘝
*/
SRM 496 PalindromfulString 瀹規(guī)枼鍐欐硶 鈽呪槄鈽呪槄
/*
闂暱搴︿負(fù)N鐨勫瓧絎︿覆(uppercase)涓紝鑷沖皯鏈塊涓暱搴︿負(fù)M鐨勫洖鏂囦覆鐨勪釜鏁?br> N<=11
涓寮濮嬫垜鍦ㄩ偅閲宒p鎺紝鍙戠幇鏈夐噸澶嶄箣綾葷殑涓滆タ涓嶅ソ鎼?br> 鐪嬩簡(jiǎn)Sevenkplus鐨勶紝瀹規(guī)枼錛屾劅瑙夊ソ紲炲
鏈澶氭湁P = N - M + 1涓洖鏂囦覆
鐢變簬瑙勬ā姣旇緝?yōu)畯锛屾灇鋴D閫夊嚭鍝嚑涓綔涓哄洖鏂囦覆錛屼嬌寰楄嚦灝戞湁K涓紝浠よ繖涓ā寮忎負(fù)Ti
錛堝N = 3, M= 2 , K = 1 錛屼竴涓悎娉曠殑妯″紡涓?010錛?br> 鍒欑瓟妗堜負(fù)|T0∪T1...∪Tc|錛岃繖閲屽氨瑕佺敤鍒板鏂ヤ簡(jiǎn)
= 鈭憒Ti|
-鈭憒Ti∩Tj|
+鈭憒Ti∩Tj∩Tk|
...
鐩存帴濂楃敤鐨勮瘽澶嶆潅搴︿負(fù)2^(2^P) 錛侊紒
涓庡鉤甯哥殑瀹規(guī)枼鏈夌偣涓嶄竴鏍鳳紝榪欓噷瀛樺湪寰堝“Tj鍖呭惈浜嶵i”錛屽嵆鍏朵氦闆嗗氨鏄瓙闆嗕簡(jiǎn)
濡?11鍖呭惈浜?10
鍥犱負(fù)婊¤凍011鐨勮偗瀹氭弧瓚?10錛屾墍浠?11鏄?10鐨勫瓙闆嗭紝榪欓噷娉ㄦ剰浜?jiǎn)锛佸Q佷簩榪涘埗鏋氫婦Ti鐨勮秴闆員j錛屾槸妯″紡Ti鐨勫瓙闆?/p>
鐢諱釜闊︽仼鍥撅紝涓涓泦鍚圱j瑕佽綆楃殑嬈℃暟灝辨槸鍏堝噺鍘誨叾浣欓泦鍚圱i鍦ㄨ繖閮ㄥ垎綆楃殑嬈℃暟錛堝噺瀹屽氨涓虹┖浜?jiǎn)锛?jí)錛屽啀鍔犱笂1
鍗充負(fù) 1 - 鍏朵綑闆嗗悎Ti鍦ㄨ繖閮ㄥ垎綆楃殑嬈℃暟
鐢╪um[i]琛ㄧず闆嗗悎Ti闇瑕佺畻鐨勬鏁幫紝鍒檔um[i] = 1 - 鈭憂um[ii] ii涓篿鐨勮秴闆?br> for(int j = i+1 ; j < (1<<P) ; j++)
{
if((j & i) == i)//j鏄痠鐨勫瓙闆?br> num[j] -= num[i];
}
鎵浠ラ泦鍚圱i瀵圭瓟妗堢殑璐$尞涓?ans += num[i]*26^cnt
O((2^p)^2)
cnt涓洪泦鍚圱i鐙珛鍙橀噺鐨勪釜鏁?br> 瀵筎i,姹傜嫭绔嬪彉閲忕殑涓暟錛屽彲浠ュ厛寤哄浘錛堝埄鐢ㄥ洖鏂囦覆涓ょ鐩哥瓑鐨勬ц川錛夛紝鐒跺悗dfs綆楀嚭榪為氬潡鐨勪釜鏁板氨鏄嫭绔嬪彉閲忕殑涓暟浜?br>*/
TCO'10 Qualification Round 1A 1000pt MegadiamondHunt
/*
灝嗗彧鍚湁'<','>'鐨勪覆錛屾瘡嬈″幓鎺?lt;..<>..>榪炵潃鐨勫嚑涓?br> 濡傛灉鍘繪帀涓湁n瀵癸紝鍒欏緱鍒嗕負(fù)n^2
姹傛渶澶у緱鍒?br>
涓寮濮嬩互涓哄幓鎺夌殑欏哄簭娌″叧緋伙紝榪囦笉浜?jiǎn)鏈鍚庝竴涓猻ample
鐪嬩簡(jiǎn)LayCurse鐨勪唬鐮侊紝瀹冩槸姣忔閫夋嫨 鏋佸ぇ鐨?lt;..<>..>涓渶灝忕殑涓涓幓鎺?br> 榪欐牱瀛愬幓璐績(jī)...
濡?<<<>><>>
濡傛灉鍏堝幓鎺?lt;<>>錛岀劧鍚庡墿涓?lt;<>> 寰楀垎涓?2^2+2^2
浣嗚嫢鍏堝幓鎺?lt;>錛屽垯鍓╀笅<<<>>> 寰楀垎涓?1 + 3^2
鍥犱負(fù)錛岃冭檻涓涓瀬澶х殑<..<>..>,鑻ュ畠鑳芥墿澶э紝鍒欏畠鐨勫乏鍙寵偗瀹氬厛鍘繪帀浜?jiǎn)涓涓?br> 鏋佸ぇ鐨?lt;..<>..>錛屽鏋滃凡鍘繪帀鐨勯偅涓瘮褰撳墠鐨勫ぇ錛屽緱鍒嗘槸涓嶄細(xì)姣斿厛鍘繪帀褰撳墠
榪欎釜杈冨皬鐨勫ぇ錛屾墍浠ユ瘡嬈¢夋瀬澶т腑鐨勬渶灝忛偅涓幓鎺?br>*/
zoj 3458
/*
0 < b - a < 1 + 2sqrt(a) 姹?floor(sqrt(a)+sqrt(b))^n % 2(a+b)
鐪媤atashi鐨勶紝娌℃帴瑙﹁繃榪欑闂錛屽仛娉曟尯紲炲( 鈯?o 鈯?)錛?/p>
鐢?0 < b - a < 1 + 2sqrt(a)
=> 0 < sqrt(b) - sqrt(a) < 1
浠n = (sqrt(b)+sqrt(a))^2n = (b+a+2sqrt(ab))^n
Yn = (sqrt(b)-sqrt(a))^2n = (b+a-2sqrt(ab))^n
Zn = Xn +Yn = (b+a+2sqrt(ab))^n + (b+a-2sqrt(ab))^n
鐢變簬X1 = b+a+2sqrt(ab) , Y1 = b+a-2sqrt(ab)
鏄柟紼?U-X1)(U-Y1) = 0 錛屽嵆 U^2 - 2(a+b)U + (a-b)^2 = 0 鐨勬牴
鍒?span style="BACKGROUND-COLOR: yellow">Zn+2 = 2(a+b)Zn+1 - (a-b)^2Zn
鐢ㄧ煩闃典箻娉曞彲浠ユ眰寰梈n
鐢變簬Yn<1 錛屾墍浠loor(Xn) = Zn - 1錛屾墍浠ユ渶鍚庣瓟妗圸n-1鍗沖彲
浠ヤ笂鏂規(guī)硶鏈変釜鍦版柟
“
鐢變簬X1 = b+a+2sqrt(ab) , Y1 = b+a-2sqrt(ab)
鏄柟紼?U-X1)(U-Y1) = 0 錛屽嵆 U^2 - 2(a+b)U + (a-b)^2 = 0 鐨勬牴
鍒橺n+2 = 2(a+b)Zn+1 - (a-b)^2Zn
”
鎴戜笉澶噦錛屾煡浜?jiǎn)涓嬬壒寰佹牴鐨勪竴鐐逛笢瑗?br> 鑻n+2 = pAn+1 +qAn
鍒橝n = C1α^n + C2β^n
涓婇潰搴旇鏄嗚繃鏉?br> 鐢盳n = Xn +Yn = (b+a+2sqrt(ab))^n + (b+a-2sqrt(ab))^n
鎺ㄥ嚭Zn+2 = 2(a+b)Zn+1 - (a-b)^2Zn
*/
zoj 3461
/*
緇欏嚭涓涓棤鍚戝浘錛屾湁杈規(guī)潈錛岀偣鏉冦傜偣鏉僾al[i]涓烘鐨勮〃紺鴻灝唙al[i]鍒嗗嚭緇欑偣鏉冧負(fù)璐熺殑錛屾瘡涓偣鍙互浣滀負(fù)涓棿鑺傜偣
鐐規(guī)潈val[i]涓鴻礋鐨勮〃紺鴻鎺ユ敹val[i]錛屼紶閫佺殑鑺辮垂涓鴻礬寰勭殑璺濈錛屾眰鏈灝忚窛紱?br> n<=16
鎸夌収棰樻剰錛岃姳璐瑰嵆涓衡垜val[i] = 0 鐨勬爲(wèi)鐨凪ST
鎴戞湁鎯寵繃闇瑕佸垝鍒嗘垚鍑犻儴鍒嗭紝璧峰垵娌℃兂榪囨庝箞鍒掑垎
瑙i鎶ュ憡鏄?span style="BACKGROUND-COLOR: yellow">鏋氫婦瀛愰泦浣滀負(fù)涓閮ㄥ垎鏍?/span>錛宒p姹傝В錛坣閭d箞灝忥紝瑕佸線闆嗗悎鏂歸潰鎯沖惂錛侊級(jí)
鍗砫p[mask] = dp[mask^i] + mst[i];
娉ㄦ剰闇瑕乻um[mask] = 0 鐨勬墠鏈夋剰涔?br>*/
zoj 3463
/*
涓鍙墜錛岀浉瀵規(guī)媷鎸囦笉鍔紝鑷沖皯瑕佸崰5涓敭鐨勪綅緗紝鑷沖鍙互寮瑰埌9涓敭銆?br> 鎷囨寚縐誨姩璺濈x闇瑕佽姳璐筬loor(sqrt(x))錛屽凡鐭ュ乏鍙蟲(chóng)墜鍒濆浣嶇疆鍜屾帴涓嬫潵
闇瑕佸脊濂忕殑1000涓敭錛屾眰鏈灝忚姳璐廣?/p>
鐘舵佹瘮杈冩槑鏄撅紝dp[n,l,r]琛ㄧず宸茬粡寮逛簡(jiǎn)n涓煶絎︼紝宸︺佸彸鎵嬫媷鎸囧垎鍒湪l,r
鐨勬渶灝忎唬浠?br> 鏃犳晥鐘舵佸緢澶氾紝涓嶈兘璁$畻錛屽惁鍒欎細(xì)瓚呮椂
鏋氫婦宸﹀彸鎵嬪埌闇瑕佸脊鐨勪綅緗紝鍏朵粬鎯呭喌涓嶇敤鑰冭檻錛屼笉浼?xì)鏇翠?/p>
榪欏彞璇濅笉澶噦錛?But, one finger touching the key between two fingers of the other hand is fobidden."
璨屼技涓嶇敤澶勭悊錛?br>
鐪媤atashi鐨勪唬鐮佺殑
sqrt鐨勫垵濮嬪寲寰堟紓浜?/p>
hdu 3651鏄畝鍖栫増錛?span style="BACKGROUND-COLOR: yellow">閮芥槸鏃犳晥鐘舵佷笉鐢ㄧ畻錛屽喅絳栨槸鐩存帴鍒伴渶瑕佺殑浣嶇疆
*/
zoj 3464
/*
N涓漢錛岃搗鍒濆湪涓鏉$嚎涓娿?br> 姣忎釜浜烘湁閫熷害vi錛屼笖姣忎釜浜烘渶澶氬彧鑳借窇甯︾潃媯扵s錛岄棶鏈蹇椂闂存帴媯掕窇瀹孡
璐績(jī)錛屾渶蹇殑浜鴻窇鏈鍚嶵s錛屽掓暟絎簩蹇殑璺戝掓暟絎簩Ts...
*/
TCO'10 Wildcard Round 500pt CalculationCards
/*
n<=50寮犲崱 濡?寮狅細(xì)+1 ,-2 , *3 鍏舵帓鍒楁湁
0 + 1 - 2 * 3 = -5
0 + 1 * 3 - 2 = 1
0 - 2 + 1 * 3 = 1
0 - 2 * 3 + 1 = -5
0 * 3 + 1 - 2 = -1
0 * 3 - 2 + 1 = -1
鏈熸湜涓?1.6666666666666667
姹傜粰瀹氱殑n寮犲崱鐨勬湡鏈涘?/p>
鐪嬭В棰樻姤鍛?a 10+Wildcard+Round
浠ュ強(qiáng)bmerry浠g爜鐨?/p>
涓嶅彲鑳絥!鐨勬灇涓?br> 璁?銆?鍗″叡鏈塻寮?br> 鎸夌収涓涓?銆?鍗″悗鎺ヨ繛緇殑*鍗″垎綾伙紝鍒欐湁s閮ㄥ垎錛屽叾鍏ㄦ帓鍒椾笉褰卞搷鏈熸湜錛堟誨叡s!縐嶏紝浣嗘湡鏈涢兘涓鏍鳳級(jí)
鎵浠ュ彧鑰冭檻鏃犲簭鐨勶紙鏃犲簭鍙互鐢ㄩ粯璁ょ殑涓縐嶉『搴忥紝鍗沖崱鍑虹幇鐨勫厛鍚庨『搴忥紝鎴栬呰緙栧彿錛?br> ***a1***a2*** ... as***
***琛ㄧず*鍗?br> 鐢變簬鏄瓑姒傜巼鐨勶紝鎵浠ユ諱綋鏉ョ粺璁★紝姣忎釜+銆?鍗¢兘浼?xì)鎺ュ悓鏍风?鍗★紝
鏃㈢劧姣忓紶+銆?鍗℃儏鍐典竴鏍鳳紝閭e氨鑰冭檻a1鍗?br> 鍏跺悗浼?xì)鎺?,1...,m寮?鍗?br> 絳旀灝辨槸 sum * (0,1,...m)寮?鍗$殑鏈熸湜 sum = 鈭慳i
姹俴寮?鍗$殑鏈熸湜鍙互鐢╠p鍋?br> 鐪媌merry浠g爜鐨勫仛娉曪紝瑙i鎶ュ憡鐨勯夯鐑?chǔ)涓鐐瑰惂
涓寮濮嬪彧鏈塻寮燼鍗℃帓鐫錛岀劧鍚庢彃鍏ヤ竴寮犲紶*鍗?br> dp[i,j]琛ㄧず鎻掑叆浜?jiǎn)鍓嶉潰i寮?鍗★紝a1鍚庢帴j寮?鍗★紝瀹冧滑鏋勬垚鐨勬湡鏈涘?br> 鍒嗙i寮犲崱鎻掍笉鎻掑叆鍒癮1涔嬪悗鏋勬垚j寮犺繛緇殑*鍗★紝姒傜巼涓?璇ユ彃鍏ョ殑浣嶇疆/鎬諱綅緗?br> dp[i,j] =
dp[i-1,j] * (n-j-1)/n
+ m[i]*dp[i-1,j-1] * j/n
n涓簊+i
榪欓亾棰樹(shù)竴涓緢濂界殑鎯蟲(chóng)硶灝辨槸絳旀涓簊um * (0,1,...m)寮?鍗$殑鏈熸湜 sum = 鈭慳i 錛侊紒錛侊紒錛侊紒
鑰屾眰鍚庢帴k寮?鍗$殑鏈熸湜錛宐merry鐨勫仛娉曟槸涓寮犱竴寮犲崱鎻掑叆錛岀劧鍚庢眰寰楁湡鏈?br> 灝忚妯″埌澶ц妯★紝閫氳繃鑰冭檻鎻掑叆浣嶇疆鏉ュ疄鐜幫紝榪欎釜鍋氭硶搴旇杈冨ソ
*/
TCO 2010 Qualification Round 1 250pt
/*
棰樻剰錛氫竴涓彧鏈塀,G緇勬垚鐨勪覆錛岃灝嗕粬浠瑂wap鐩擱偦鐨勶紝鍙樻垚BB...GG鎴朑G...BB
姹傛渶灝戠殑嬈℃暟 涓查暱<=50
鎴戠敤n^2鐨勬眰閫嗗簭瀵癸紝澶參浜?br> 鐪嬩簡(jiǎn)鍒漢鐨勶紝鐩存帴灝辨槸绱灝嗘瘡涓瓧姣岯縐誨埌宸﹁竟鐨勬鏁?br> if(row[i] == 'B')
{
tot += i - x;
x ++;
}
x鏄綋鍓嶉渶瑕佹斁B鐨勪綅緗紝浜ゆ崲鍚庡氨++縐誨埌涓嬩釜浣嶇疆
*/
TCO'10 Qualification Round 2 1000pt HandlesSpelling
/*
緇欏嚭涓涓枃鏈覆錛屼竴浜涙ā寮忎覆
鐜拌灝嗘ā寮忎覆瑕嗙洊鏂囨湰涓詫紝涓嶈兘鏈夐噸鍙犻儴鍒?br> 姹備嬌寰桝^2 - B 鏈澶?br> A鏄渶闀胯鐩栫殑闀垮害錛孊鏄繕鏈鐩栫殑涓暟
涓寮濮嬩竴鐩村叧娉ˋ^2 - B 錛屼笉鐭ユ庝箞鍋?br> 瑙i鎶ュ憡鏄垎寮鏉ュ仛
瑕佹眰寰桝^2 - B鐨勬渶澶у鹼紝鍙互閫氳繃鏋氫婦A
鏋氫婦鏌愪竴孌典綔涓烘渶澶ц鐩栧鹼紝鐒跺悗鐪嬪叾宸﹀彸鏈鐩栫殑涓暟
鑰岃綆椾負(fù)瑕嗙洊鐨勪釜鏁板彲浠ラ氳繃dp浜?br> dp[i,j]琛ㄧず[i,j]涓鴻鐩栫殑涓暟
鏋氫婦[i,i']涓孌墊槸琚鐩栫殑錛屽垯絳旀灝辨槸min(dp[i'+1,j])
娉ㄦ剰鐨勬槸錛屽垵濮嬪寲鏈変簺dp[i,j]=0錛屽氨鐩存帴continue
*/
SRM 216 Refactoring
/*
闂竴涓暟n<=2*10^9 鍙互鎷嗗垎鎴愬灝戠鍥犲瓙鐩鎬箻鐨勬儏鍐?br> 24 = 2*2*2*3
= 2*2*6
= 2*3*4
= 2*12
= 3*8
= 4*6
涓嶉渶瑕侀珮娣辯殑鏁板鐭ヨ瘑錛侊紒錛?br> 鏆村姏dfs鍋?br> f(n) = 1 + 鈭慺(n/i)
i 涓哄叾鍥犲瓙,i > 1 && i <= n/i錛堜繚璇佷笉浼?xì)杩涘叆澶氫綑鐨勫垎鏀Q?br> 涓轟簡(jiǎn)淇濊瘉鏃犲簭錛屽彲浠ュ鍔犱竴涓弬鏁皊tart錛岃〃紺鴻杞殑鍥犲瓙>=start
*/
SRM 223 PrimeAnagrams
/*
緇欏嚭涓涓暟瀛椾覆len<=8
姹傚皢鍏跺垎涓轟笁閮ㄥ垎錛屾瘡閮ㄥ垎閮芥槸绱犳暟錛屼笖涔樼Н鏈灝?/p>
鐪嬭В棰樻姤鍛婄殑
8! = 40320 錛岃屽垎鎴?閮ㄥ垎鎯呭喌涓篊(7,2) = 21縐?br> 鎵浠ユ灇涓懼叏鎺掑垪錛岀劧鍚庡垎鎴?閮ㄥ垎鏉ュ仛
Brute Force 錛侊紒錛侊紒錛侊紒
*/
zoj 3471 mask dp
/*
n<=10涓悆錛宨紕癹浼?xì)漶旂敓a[i,j]鐨勮兘閲忥紝j鍚屾椂浼?xì)娑堝?br> 闂渶澶氫駭鐢熺殑鑳介噺涔嬪拰
鎴戠煡閬撹窡mask鏈夊叧錛屼負(fù)鍟ヨ繕鏄兂涓嶅嚭錛?br>
瑕佷粠鏁翠綋鏉ョ湅錛侊紒
鐜板湪鏈変竴浜涚悆錛屾帺鐮佷負(fù)mask
鍋囪鏈鍏堢鎾炵殑鏄痷->v錛岀劧鍚巚娑堝け浜?br> 灞闈㈠氨鍙樻垚浜?jiǎn)娌℃湁v鐨勪竴浜涚悆浜? mask^(1<<v)錛屼竴涓瓙闂?shù)?br> 鎵浠ヨ漿縐誨氨鏄灇涓緐,v
dp[mask] = max(dp[mask^(1<<v)+a[u][v])
浠庡眬闈㈡潵鐪嬪惂錛侊紒錛?/span>
涓寮濮嬫垜鏄儚zoj 3461 dp[mask] = dp[mask^i] + mst[i];
鍙戠幇浼?xì)鍑洪棶棰樺Q?span style="BACKGROUND-COLOR: yellow">榪欐牱瀛愭槸闅旂浜?jiǎn)涓閮ㄥ垎錛屼絾鏄劇劧闅旂浜?jiǎn)鍚庝細(xì)涓㈠ぷ兒?jiǎn)榪炴帴鐫涓ら儴鍒嗙殑閭d釜鍊?br>
*/
zoj 3470
/*
濡傚浘錛岄棶鏌愪釜鏁板瓧涓婁笅宸﹀彸鐨勬暟瀛楁槸澶氬皯
鏃㈢劧棰樼洰緇欎簡(jiǎn)涓鍓搴旂殑鍧愭爣錛屽彂鐜幫紝闂鐨勯噸鐐瑰氨鍦ㄤ簬鐐瑰潗鏍囪窡鏁板瓧鐨勮漿鎹?br>
鎴戞槸鍏堟壘鍑烘暟瀛梫al鍦ㄧn鍦?鍗?(n-1)^2 < val <= n^2
鐒跺悗璇ュ湀鐨勮搗鐐箂tart灝辨槸(n-1)^2 + 1 錛?鐒跺悗閫氳繃姣旇緝start錛屽氨鑳芥眰鍑哄潗鏍囦簡(jiǎn)
鍙戠幇濂囨暟鍦堜細(xì)浣縨inx--,miny-- ; 鍋舵暟鍦堜細(xì)浣縨axx++,maxy++
鏁伴噺鍏崇郴鏄痬inx = miny = -(n-1)/2 , maxx = maxy = n/2
鐒跺悗鐐?x,y)杞寲涓哄鹼紝璺熶笂闈㈢被浼肩殑
姹傚嚭絎琻鍦?nbsp; 浜屽垎鍒ゆ柇 minx<=x<=maxx , miny<=y<=maxy
鐒跺悗姹傚嚭瑙掕惤鐨勭偣絳夌瓑...
*/
zoj 3468
/*
Dice娓告垙錛屼竴寮濮婣ttacker Defender鍚勬湁楠板瓙n,m涓?br> 鍙屾柟鎷垮嚭涓瀹氶瀛愭潵鎶曪紝绱鍜?br> 璋佸鐐硅皝璧?br> Attacker鎷垮嚭鑷沖皯1涓潵鏀誨嚮
闂瓵ttacker涓嬈℃敾鍑昏耽鐨勬鐜?br> 楠板瓙鏁扮洰<=8
鏋氫婦Attacker鎶曞嚭鐨勫拰涓簀錛岀劧鍚庤綆楄揪鍒癹鐨勬柟娉曟暟錛屼互鍙?qiáng)Defender鎶曞嚭鐨勫拰灝忎簬j鐨勬柟娉曟暟
鐢ㄨ儗鍖呯殑鏂規(guī)硶璁$畻鏂規(guī)硶鏁?br>*/
CF 60D
/*
n<=10^6涓偣錛屾瘡涓偣鏈夋潈鍊糰[i]<=10^7 鍚勪笉鐩稿悓
鑻ュ瓨鍦ㄤ竴涓暟x錛屼嬌寰梐[i],a[j],x is a beautiful triple
鍗砤^2 + b^2 = c^2 a,b,c浜掔礌
鍒檌鍙互浼犳挱laugh鍒癹
闂渶灝戦渶瑕侀渶瑕佽澶氬皯涓《鐐硅嚜琛宭augh錛岀劧鍚庝紶鎾埌鍏ㄩ儴鐨勯《鐐?/p>
鐪嬩簡(jiǎn)瑙i鎶ュ憡鐨?br> 騫舵煡闆嗗仛
浣嗗浣曞垽鏂璪eautiful triple 涓や袱鍒ゆ柇O(n^2)浼?xì)瓒呮?/p>
鏈変釜鎬ц川錛氬浜庢弧瓚砤^2 + b^2 = c^2鐨勬暟錛屽彲鐢ㄥ嬀鑲℃暟鍏紡鐢熸垚錛?br> (x^2-y^2 , 2xy , x^2+y^2) x>y
璇ュ叕寮忚兘鐢熸垚鎵鏈夌殑绱犲嬀鑲℃暟錛堜簰璐級(jí)錛岄渶1濂?鍋?錛屼笖gcd(x,y) = 1
涔熻兘鐢熷嚭閮ㄥ垎媧劇敓鍕捐偂鏁?濡?6 8 10) 錛?2濂囨垨2鍋?br>
鐢變簬a[i]<=MAX MAX= 10^7
鎵浠ュ繀鏈墄^2-y^2 <= MAX , 2xy <= MAX 浣唜^2+y^2涓嶄竴瀹?lt;= MAX
2y^2<=MAX
x^2<=MAX+y^2<=3MAX/2
=> x<=sqrt(3MAX/2) , y <= sqrt(MAX/2)
鎵浠ユ灇涓緓,y澶嶆潅搴︿負(fù)O(MAX)
(娉ㄦ剰x,y鏄?濂?鍋朵笖gcd(x,y) = 1)
鍙傝僿atashi浠g爜鍐欑殑
*/
CF60E
/*
涓寮濮?n <= 10^6 涓?Mushroom 鎸夊崌搴忔帓鎴愪竴鏉$洿綰?錛?姣忎釜Mushroom閲嶄負(fù)a[i]
涓嬩竴縐掓椂錛宎[i] , a[i+1] 涔嬮棿浼?xì)鍑虹庮C竴涓猘[i]+a[i+1]鐨凪ushroom
鑰寈縐掓椂錛屾煇浜洪噸鏂版帓搴忚繖浜汳ushroom
闂啀緇忚繃y縐掞紝鎵鏈塎ushroom鐨勯噸閲忎箣鍜?/p>
0 a1 a2 a3
1 a1 a1+a2 a2 a2+a3 a3
2 a1 2a1+a2 a1+a2 a1+2a2 a2 2a2+a3 a2+a3 a2+2a3 a3
3 ...
璁炬椂闂磇鏃墮噸閲忎負(fù)Ti 鍒橳i = 3Ti-1 - (a1+an)
鎵浠ュ墠x鍙敤鐭╅樀涔樻硶姹傚嚭Tx
鐒跺悗鐢變簬sort錛屾渶澶х殑鍊兼槸Fx-1*an-1 + Fx*an 錛堟壘瑙勫緥 Fx-1*ai-1 + Fx*ai , Fx*ai-1 + Fx-1*ai錛?br> F鏄枑娉㈤偅濂戞暟鍒?nbsp; F[-1] = 0 , F[0] = 1
鐒跺悗淇敼a1+an鍊煎嵆鍙紝鍐嶆鐭╅樀涔樻硶 綆楀嚭鍚庢潵鐨剏縐?br>*/
noip2002 G2 瀛椾覆鍙樻崲 鍙屽悜B(tài)FS
/*
緇欏嚭A,B涓?br> 浠ュ強(qiáng)涓浜涘彉鍖栨柟娉曪紝鍗硏->y
姹侫鍙樺埌B鐨勬渶鐭鏁?br>
bfs鎱㈢偣
鍙屽悜浼?xì)蹇?br> 鐢變簬x->y鏄崟鍚戠殑錛屾墍浠ヤ袱杈圭殑緇撴瀯涓嶅悓錛?span style="BACKGROUND-COLOR: yellow">浼樺厛鎵╁睍闃熷垪闀垮害鐭殑浼樺寲灝辨湁鐢ㄤ簡(jiǎn)
娉ㄦ剰鍙嶅悜B(tài)FS鏃舵墿灞曠殑欏哄簭鏄痽->x
*/
poj 2411
/*
闂畁*m鐨勬鐩樻斁緗?*2鐨勯鐗岀殑鏂規(guī)鏁?br> n,m<=11
鏋氫婦琛岋紝閫掓帹璁$畻鍒?br> dp[row,col,s] row琛屼箣鍓嶅凡緇忔斁濂?涓斿綋鍓峳ow琛屽浜巗鐘舵?
閫掓帹 閫氳繃鍦╮ow琛岋紝col鍒椾箣鍚庢斁緗紝鎵╁睍璁$畻
dp[row,col,s1] += dp[row-1,col,s2]
涓嶆槸璁板繂鍖栨悳绱?鏄粠0閫掓帹
涓轟簡(jiǎn)鎵撹〃錛屽湪姣忎釜鍒嗘敮閮借綆椾簡(jiǎn) 鍗?dp[row][col][s1] += dp[row-1][col][s2];
鍚﹀垯錛屽彲浠ュ湪鏈鍚庣殑鏃跺欐墠璁$畻鐨?br>*/
sgu 131
/*
n*m媯嬬洏錛岄棶鐢?*2, 2*2鍘繪帀涓涓鐨勯鐗岃鐩栧畬鐨勬柟妗堟暟
鐘舵佸畾涔変負(fù) dp[row,s]琛ㄧず褰撳墠絎瑀ow琛岀姸鎬佷負(fù)s錛屼笖鍓峳ow-1琛屽凡緇忚鐩栧畬鐨勬柟妗堟暟
鍒?dp[row,s] <-- dp[row-1,s']
杞Щ鏄灇涓緍ow榪欎竴琛屾瘡涓綅緗紙娉ㄦ剰鏄暣琛岋級(jí)鎬庝箞鏀?br> 鍚屾椂錛岃嫢鏋氫婦浜?jiǎn)row鎬庝箞鏀撅紝鍒欑敱鐘舵佺殑瀹氫箟錛宺ow-1涔嬪墠鐨勫繀欏昏鐩栧畬錛屽氨鐭ラ亾浜?jiǎn)s'鏄粈涔堜簡(jiǎn)錛侊紒錛?br>
姣忎釜浣嶇疆鏈?縐嶆斁娉曪紝闄や簡(jiǎn)琚箣鍓嶇殑鏂規(guī)硶闄愬埗浜?jiǎn)锛尀兏嵀?br>*/
hdu 2640
/*
n*m鐨勬鐩橈紝鏈変竴浜涗綅緗笉鑳芥斁錛岄棶鏈澶氳兘鏀懼灝戜釜鍗佸瓧鏋?br> @
@@@
@
娉ㄦ剰鐨勬槸錛屾瘡涓狜閮介渶瑕佹斁錛屾墍浠ユ鐩樼浉搴旂殑浣嶇疆闇瑕佹槸絀虹殑
*/
xmu 1118
/*
姹傜敤1*1,1*2,1*3鐨勭爾鍧楅摵婊?3*N鐨勬澘鐨勬柟妗堟暟鐩?br> 1*3錛屾渶澶氬獎(jiǎng)鍝?琛?鎵浠ョ姸鎬侀渶瑕佽褰曞綋鍓嶈浠ュ強(qiáng)鍓嶄竴琛岀殑鎯呭喌 2bit 鍏?縐?br> _ * _ *
_ _ * *
_琛ㄧず絀猴紝*琛ㄧず琚鐩?/p>
dp[row,s]琛ㄧずrow-1涔嬪墠鐨勫凡緇忚鐩栧畬浜?jiǎn)锛宺ow-1,row鐨勭姸鎬佷負(fù)s鏃剁殑鍊?br> 鑴戞畫(huà)浜?jiǎn)锛寃a浜?jiǎn)濂藉嚑娆?br> 娌℃兂鍒板彲浠?span style="BACKGROUND-COLOR: yellow">2*2涓婁笅浜ら敊
瀵箁ow榪欎竴琛岀殑姣忎釜浣嶇疆錛屾灇涓懼叾鏀劇殑鏂規(guī)硶
铏界劧璇?縐嶇姸鎬侊紝瀹為檯涓婅漿縐繪椂寰堝鏄笉闇瑕佺殑銆傚洜涓轟負(fù)浜?jiǎn)婊…懗row-1涔嬪墠鐨勬槸瑕嗙洊瀹岀殑
涓嶆斁錛屽彲浠ヨ漿縐諱袱縐嶏紝鍗充笂闈㈢殑1,2縐嶇被鍨?/span>
*/
hdu 2240
/*
緇欏嚭濡傚浘n*5媯嬬洏錛屽叾涓涓鍧楁渶澶氬彧鑳界敤c涓紝鍏朵綑鐨勪笉闄?br> 闂兘鍚﹂摵婊?br> 璺焥gu 131綾諱技
涓嶈繃榪欓噷dp鐨勫兼槸璁板綍鏈灝戜嬌鐢ㄧ殑1
b1,b2鏄箣鍓嶇殑鏂規(guī)硶瀵瑰綋鍓嶇殑褰卞搷
*/
hdu 2606
/*
鐢?*1, 2*2, 3*3, 4*4瑕嗙洊瀹孨*4鐨勬鐩樼殑鏂規(guī)鎬繪暟
閫掓帹
dp[n] = dp[n-1] 鏈搴曢儴鏀?涓?*1
+ 4*dp[n-2] 鏈搴曢儴緇勫悎鍑?*4鐨勶紝鎬誨叡鏈?縐?br> + 4*dp[n-3] 鏈搴曢儴緇勫悎鍑?*4鐨勶紝鎬誨叡鏈?縐?nbsp; 2涓槸2鍧?*2涓婁笅浜ら敊 2涓槸涓鍧?*3
+ 3*dp[n-4] 鏈搴曢儴緇勫悎鍑?*4鐨勶紝鎬誨叡鏈?縐?nbsp; 2涓槸3鍧?*2涓婁笅浜ら敊 1涓槸涓鍧?*4
+ 2*(dp[n-5]+dp[n-6]...+dp[0]) 鐢?*2涓婁笅浜ら敊鏀劇殑
鍒檇p[n-1] = ....
涓ゅ紡鐩稿噺錛屽緱鍒癲p[n] = 2dp[n-1] +3dp[n-2] - dp[n-4] - dp[n-5] n>=5
鑷充簬n<=4鐨勶紝緇撳悎涓婇潰鐨刣p[n]鐨勫紡瀛愯綆?/p>
*/
hnu 10816 ugly number
/*
棰樻剰錛氱粰鍑簄涓礌鏁?lt;=10000 n<=10
闂甗x,y]鍖洪棿鍐呭彧鍖呭惈榪欎簺绱犳暟鍥犲瓙鐨勬暟錛岃姹傚叏閮ㄦ墦鍗板嚭鏉?br> x,y<=2^31
涓寮濮嬬湅鍒拌妯″悡浜?jiǎn)涓璺?br> 浜嬪疄涓婏紝鍙惈鏈夎繖浜涘洜瀛愮殑鏁版槸寰堝皯鐨?br> 娉ㄦ剰涓嶆槸鍊嶆暟錛侊紒涔嬪墠絎竴鍗拌薄鐪嬫垚鍊嶆暟錛屾悶涓鏂ヤ簡(jiǎn)錛岀畻浜?jiǎn)涓?鍜?鐨勶紝鏁版嵁宸ㄥぇ....
鍍弍oj 鐨?ugly number閭f牱瀛愬仛
鐢變簬姣忎釜鏁伴兘寰椾箻?shù)互杩欎簺绱犳暟鏉ユ墿灞?br> 鐢╪um[]鏁扮粍瀛樺偍鐢熸垚鐨勬墍鏈夋暟
pos[i]琛ㄧず绱犳暟pr[i]褰撳墠瑕佷箻?shù)互num[pos[i]]
鍒濆num[0] = 1 pos[i] = 0
鐒跺悗姣忎竴姝ユ墿灞曚竴涓暟錛岃鏁頒負(fù)num[tot] = min(num[pos[i]]*pr[i])
鐒跺悗鍒ゆ柇姣忎釜num[pos[i]]*pr[i] 鏄惁 = num[tot]錛?span style="BACKGROUND-COLOR: yellow">鏄殑璇?pos[i]+1
榪欑鎬濇兂榪樻槸娌¤兘寰堝ソ鎺屾彙...
鑲畾鐨勬槸錛屾瘡涓暟閮藉緱涔樹(shù)互pr[1],pr[2]...
瑕佺敤pos[i]璁板綍褰撳墠pr[i]涔樺埌鍝釜鏁頒簡(jiǎn)錛侊紒錛?br>*/
08 ZhuHai Contest E Magic Squares 鍙屽悜bf
/*
闂竴涓帓鍒楀彉?shù)?*3騫繪柟鐨勬渶灝忔鏁?br> 姣忎竴姝ュ彲浠ラ夋嫨涓涓榪涜鏃嬭漿
鐘舵佹暟涓嶅9!
鍏堝叏鎺掑垪寰楀埌鐩爣鐘舵?br> 鍐嶅弻鍚慴fs 鎸哄揩鐨?br> 鐢ㄥ悍鎵樺睍寮錛堝彉榪涘埗錛夊垽閲嶆洿蹇?br>*/
poj 3255 鏃犲悜鍥懼兼鐭礬 鈽呪槄鈽?br>/*
緇欏嚭涓涓棤鍚戝浘 n<=5000, m <= 30000
姹?鍒皀鐨勫兼鐭殑璺紝濡傛灉鏈夊鏉℃渶鐭礬錛屼絾嬈$煭鐨勮繕鏄渶瑕佸ぇ浜庢渶鐭殑
鍏佽鐐廣佽竟璧板嬈?/p>
闈犺В棰樻姤鍛婁繚鍏粇~~ T_T
姹?鍒板叾浠栫偣鐨勬渶鐭礬dist[] 錛屽啀姹俷鍒板叾浠栫偣鐨勬渶鐭礬rdist[]
鏋氫婦姣忔潯杈癸紝鎵懼埌嬈$煭鐨?dist[u] + (u,v) + rdist[v]
鍚ず: 鏋氫婦鍝潯杈逛綔涓轟腑闂寸殑蹇呴』緇忚繃鐨勮竟u->v錛岀劧鍚庤繛鎺?->u, v->n
*/
scu 3904
/*
涓涓簭鍒梥eq[i] n<=10^5 -10000<=seq[i]<=10000
灝嗗叾鍒掑垎鎴愬嚑閮ㄥ垎錛屼嬌寰楁瘡涓閮ㄥ垎涔嬪拰>=0
姹傛墍鏈夌殑鍒掑垎鏂規(guī)硶鏁?br> 鏄劇劧dp[i] = 鈭慸p[j] (sum[i] - sum[j] >= 0)
O(n^2)浼?xì)瓒呮?br> 鐢ㄧ嚎孌墊爲(wèi)鍔犻?br> 鎴戜竴寮濮嬫槸浠ヤ笅鏍囦綔涓虹嚎孌墊爲(wèi)鐨勬暟杞達(dá)紝璁板綍璇ユMin[p],Max[p],榪樻湁涓涓猻Dp[p]璁板綍璇ユ鎵鏈塪p鍊?br> 浣嗚繖鏍鋒瘮杈冩參錛岀淮鎶ょ浉瀵瑰浜?jiǎn)鐐?/p>
鐪嬩簡(jiǎn)鏍囩▼錛屾槸鍏堣綆楁墍鏈夌殑sum[]錛岀劧鍚庣鏁e寲
浠um鍊間綔涓烘暟杞存潵鎼烇紝鐢ㄦ爲(wèi)鐘舵暟緇勫氨寰堝鏄撳啓浜?/p>
*/
涓ぇ絎笁鏈?ch2 璐熸潈鏁?br>/*
騫蟲(chóng)椂 N = anR^n + ... + a0R^0 鍏朵腑R>0
璐熸潈鏁版槸R < 0,浣跨敤璐熸潈鏁拌〃紺虹殑浼樼偣鏄浜庤礋鏁幫紝涓嶇敤鍓嶇疆鐨勭鍙?br> 姣斿 -15 = 1*(-2)^5 + 1*(-2)^4 + 0*(-2)^3 + 0*(-2)^2 + 0*(-2)^1 + 1*(-2)^0
鐜扮粰鍑篘, -16<= R <=-2
姹侼鐨勮礋鏉冩暟R琛ㄧず錛堥鐩殑絳旀杈撳嚭涓琛岋紝琛ㄦ槑琛ㄧず鏄敮涓鐨勶級(jí)
(鏃犺姝f潈銆佽礋鏉冿紝緋繪暟ai閮芥槸 0<=ai<|R|)
鍥犱負(fù)鍙栦綑榪愮畻鍙嬌鐢ㄨ姝f暣鏁伴櫎娉曪紝鎵浠ヤ笉鑳介氳繃榪炵畫(huà)榪為櫎姹備綑鐨勬柟娉曪紒錛侊紒錛?br> 鍐欐垚鏅氬艦寮忔椂錛?/p>
N >= 0
N = an|R|^n + ... + a0|R|^0 R < 0
i涓哄鏁版椂:
ai|R|i = R(i+1) + (|R|-ai)Ri 涓轟簡(jiǎn)淇濊瘉a'>=0
i涓哄伓鏁?br> ai|R|i = aiRi
鎵浠ュ厛灝哊鍐欐垚姝f潈褰㈠紡錛岀劧鍚庡啀淇敼涓鴻礋鏉冪殑
鍚岀悊
N < 0
N = -(an|R|^n + ... + a0|R|^0) R < 0
i涓哄鏁版椂:
-ai|R|i = aiRi 涓轟簡(jiǎn)淇濊瘉a'>=0
i涓哄伓鏁?br> -ai|R|i = R(i+1) + (|R|-ai)Ri
鏈鍚庡a'[]榪涜淇錛屼嬌寰? <= a'i < |R|
鎰熻鎸轟笉閿欑殑涓閬撻錛?span style="BACKGROUND-COLOR: yellow">閫氳繃瀵規(guī)鏉冪殑褰㈠紡錛屼慨姝d負(fù)璐熸潈鐨?/span>
*/
R*C<=100000 閫掑綊浼?xì)鐖?br> 瑕佺敤闈為掑綊...
*/
http://www.shnenglu.com/Yuan/archive/2010/08/09/122849.html
POJ 1149 鏋勫浘涓嶉敊
/*
棰樻剰: 緇欏嚭m涓尓鍦堬紝n涓【瀹€傛瘡涓【瀹㈡湁涓浜涢挜鍖欏紑鐚湀鐨勶紝寮浜?jiǎn)鍚庨偅浜涚尓鍙噸鏂板垎閰嶄篃琛?br> 欏懼瑕佷拱Bi澶寸尓 欏懼璧板悗闂ㄥ氨鍏充簡(jiǎn)灝變笉鑳藉啀璋冩暣鐚簡(jiǎn)
鐚湀涓寮濮嬫湁涓浜涚尓錛岀尓鍦堝彲瀹圭撼鏃犻檺鐨勭尓
闂兘鍗栧嚭鍘葷殑鏈澶х尓鐨勬暟鐩?/p>
榪欓亾棰橈紝鎴戜竴寮濮嬪仛錛屾瀯鍥炬槸姝g‘錛屼竴涓皬鍦版柟鍐欓敊浜?jiǎn)锛屾悶浜?jiǎn)鎴戝崐澶╀簡(jiǎn)錛?br> 鏋勫浘濡備笅錛?br> S鍚戠尓鍦堣繛杈癸紝瀹歸噺涓虹尓鍦堢尓鐨勬暟鐩?br> 欏懼鍚慣榪炶竟錛屽閲忎負(fù)欏懼瑕佷拱鐨勬暟鐩?br> 欏懼鐨勯挜鍖欏搴旂殑鐚湀鍚戦【瀹㈣繛杈癸紝瀹歸噺鏃犻檺
濡傛灉欏懼i璺熷墠闈㈢殑欏懼j鏈夊叡鍚岀殑閽ュ寵灝辮兘榪瀓->i錛屽閲忔棤闄?br>
鎴戣繖鏍峰瓙鏋勫浘璺熺綉涓婄殑鏈夌偣涓嶄竴鏍鳳紝涓嶈繃鏍稿績(jī)閮芥槸宸笉澶氬惂
“鑻ョi涓漢涓庝粬鍚庨潰鐨勭j涓漢鏈夊悓涓涓尓鍦堢殑閽ュ寵錛屽垯浠巌寮曡竟鍒癹,瀹歸噺涓烘棤絀峰ぇ”
緗戜笂璇︾粏鏋勫浘錛?a >http://imlazy.ycool.com/post.2059102.html
浠栬繖縐嶆瀯鍥炬柟娉曟洿宸э紝鍘繪帀浜?jiǎn)鐚湀浜?jiǎn)錛堢尓鍦堟暟鐩緝澶э級(jí) 涓嶈繃瀵規(guī)垜灝遍毦鎯沖埌
*/
hdu 2888
浜岀淮RMQ 鐢╠p[i][j][k1][k2]琛ㄧず鐭╁艦(i,j) (i+(1<<k1)-1,j+(1<<k2)-1)鐨勬渶鍊?br>
8.10
hdu 3485
姹傞暱搴︿負(fù)n鐨勪笉鍖呭惈101瀛愪覆涓茬殑涓暟 璺焗du 2604綾諱技
濡傚浘錛岄暱搴︿負(fù)n鐨勫悎娉曚覆錛屽悗緙鍙互鏄?錛?01,0011,00111,...
鎵浠p[n]=dp[n-1]+dp[n-3]+dp[n-4]+...+dp[1]
鑰宒p[n-1]=dp[n-2]+dp[n-4]+...+dp[1]
涓ゅ紡鐩稿噺錛屽緱鍒癲p[n]=2*dp[n-1]-dp[n-2]+dp[n-3]
hdu 3486
/*
棰樻剰錛氱粰鍑簄涓暟錛屾眰鍒嗘垚澶氬皯孌碉紝浣垮緱姣忔鐨勬渶澶у間箣鍜?gt;k 錛堟湯灝句笉瓚充竴孌電殑涓㈠純錛?br> 浜屽垎鍒嗘垚澶氬皯孌碉紝鐩存帴鍋氬嵆鍙?O(nlogn)
鐢ㄧ嚎孌墊爲(wèi)浼?xì)鏇存參锛孫(nlognlogn)
*/
hdu 3482
/*
棰樻剰:闂弧瓚蟲(chóng)潯浠剁殑闀垮害涓簄鐨勪覆鐨勪釜鏁?nbsp; 鏉′歡鏄瘡涓暱搴︿負(fù)m鐨勫瓙涓茬殑鏁板瓧瑕佷箞鍏ㄤ笉鍚屻佽涔堝叏鐩稿悓
鍒嗙被璁ㄨ
m=1 1
m=2 2^n
m>n (涓嶅瓨鍦ㄩ暱搴︿負(fù)m鐨勫瓙涓? m^n
m<=n m!+m (鍏跺疄錛岀‘瀹氫簡(jiǎn)鍓峬涓悗闈㈢殑閮戒細(xì)紜畾鐨勶紝鎵浠! 鍐嶅姞涓婂叏鐩稿悓)
*/
hdu 3478
/*
棰樻剰錛氱粰鍑轟竴涓棤鍚戝浘錛屼竴涓搗鐐癸紝闂槸鍚﹀湪鏌愪釜鏃跺欙紝榪欎釜浜烘湁鍙兘鍦ㄦ墍鏈夌偣閮藉彲浠ュ嚭鐜?br> 浜轟笉鑳藉仠鐣欏湪鍘熷湴
鐢諱竴涓嬪浘灝辯煡閬擄紝鍙瀛樺湪濂囧湀錛岄偅涔堝鍦堢殑鐐瑰氨鍙互浠諱綍鏃跺埢閮藉嚭鐜頒漢
鍚屾椂錛屽浜庡鍦堝鐨勶紝濂囧湀鍙互婧愭簮涓嶆柇鍦頒紶鍒板鍦堝
榪欐牱鑲畾瀛樺湪鏌愪釜鏃跺埢錛屽叾浠栫偣涔熷彲浠ュ悓鏃跺嚭鐜頒漢錛堝洜涓烘簮婧愪笉鏂紶鍑烘潵錛屾墍浠ヨ偗瀹氫細(xì)娉㈠強(qiáng)鎵鏈夛級(jí)
*/
http://www.shnenglu.com/Yuan/archive/2010/08/11/123005.html
8.11
hdu 3516
/*
棰樻剰:緇欏嚭n涓偣錛屽鏋滄弧瓚?xi < xj and yi > yj for all i < j 灝卞彲浠ュ湪鐐?xi,yj)鍚戠偣i,j榪炶竟
姹傛妸浠栦滑榪炴垚涓媯墊爲(wèi)鐨勬渶灝忎唬浠?br> 璺熺煩闃佃繛涔樼殑鍔犳嫭鍙蜂竴鏍?br> dp[i][j]=min{dp[i][k]+dp[k+1][j]+(pt[k+1].x-pt[i].x)+(pt[k].y-pt[j].y)}
n<1000
闇瑕佸洓杈瑰艦涓嶇瓑寮?nbsp; O(n^2)
*/
hdu 3512
/*
棰樻剰錛氱粰鍑轟笂闈涓暟錛屼笅闈涓暟錛屾眰瀹岀編鍖歸厤鐨勬渶澶ц竟鏈灝忋傝竟鏉冨畾涔変負(fù)涓や釜鏁扮浉涔樸傚彲浠ヨ礋鏁?br> 搴旇鏈夌偣YY鐨?br> 鍏堝垎涓涓嬫儏鍐?br> 鍚屽彿錛氬ぇ*灝?nbsp; 鎵嶈兘浣挎渶澶ч偅涓渶灝?br> 寮傚彿錛氬皬*灝?nbsp; 鎵嶈兘浣挎渶澶ч偅涓渶灝?br> 涓鐐硅椽蹇?jī)鐨勬濇兂
涓婇潰鐨勯偅浜涙鏁拌窡涓嬮潰鐨勮礋鏁板尮閰?br> 涓婇潰鐨勯偅浜涜礋鏁拌窡涓嬮潰鐨勬鏁板尮閰?br> 榪欐牱鍓╀笅鏉ョ殑錛堝綋鐒跺彲浠ユ病鏈夊墿涓嬶級(jí)錛岃偗瀹氭槸鍚屽彿鐨勶紝鑰屼笖榪欎簺鏁版洿鎺ヨ繎浜?
鐜板湪鍐嶆潵鐪嬮偅浜?姝f暟*璐熸暟 鐨勬儏鍐?br> 鍒氭墠鎻愬埌“灝?灝?nbsp; 鎵嶈兘浣挎渶澶ч偅涓渶灝?#8221;錛岃屼笖瓚婂皬鐨勮瘽瓚婂ソ
鎵浠ヤ笂闈㈤偅浜涙渶澶х殑姝f暟璺熶笅闈㈤偅浜涙渶灝忕殑璐熸暟鍖歸厤錛堥『搴忓尮閰嶏紝澶?澶э紝灝?灝忥級(jí)
鍚岀悊錛屼笂闈㈢殑閭d簺鏈灝忕殑璐熸暟璺熶笅闈㈤偅浜涙渶澶х殑姝f暟鍖歸厤
灝辮繖鏍峰厛鎺掑簭錛岀劧鍚庢壘鍑哄悇鑷殑0鐨勪綅緗?br> 鍐嶅垎綾諱竴涓嬪嵆鍙?br>*/
http://www.shnenglu.com/Yuan/archive/2010/08/11/123105.html
8.12
hdu 3481
/*
棰樻剰錛氶棶闀垮害涓簄鐨刡ad serial涓茬殑涓暟銆俠ad serial 鎸囨瘡涓涓暱搴︿負(fù)m鐨勫瓙涓查兘涓嶆槸good serial
(good serial鎸囪涔堝叏鐩稿悓錛岃涔堝叏涓嶅悓)錛屾墍浠ad serial灝辨槸涓や釜浠ヤ笂涓嶅悓錛屼絾涓嶈兘m涓兘涓嶅悓
dp[i,j](1<=j<m)琛ㄧず闀垮害涓篿鐨勪覆鏈鍚巎涓暟瀛椾簰涓嶇浉鍚岀殑涓蹭釜鏁幫紙鍗硈tr[i-j]涓庢湯灝捐繖j涓暟涓竴涓浉鍚岋級(jí)
鑰冭檻dp[i+1,j+1]
(1)dp[i+1,j+1]+=dp[i,j]*(m-j) 閫変竴涓笌i鍙?qiáng)涔嬪墠j涓暟瀛楅兘涓嶅悓鐨?br> (2)dp[i+1,k]+=dp[i,j] 2<=k<=j 閫変竴涓笌i涔嬪墠j涓暟瀛楁煇涓浉鍚岀殑 str[i+1]=str[i+1-k]
榪樻湁涓縐嶇壒孌婄殑灝辨槸dp[i,1]錛屽嵆鏈熬鍑犱釜鏁板瓧閮界浉鍚岀殑鍚堟硶涓蹭釜鏁?br> (3)dp[i+k,1]+=dp[i,j] (1+k<=m-1, j>1||i==1)
濡傛灉j=1鐨勮瘽鏈夊彲鑳戒竴榪炰覆閮界浉鍚屽鑷翠笉鍚堟硶錛岃j>1
鐗規(guī)畩鐨勬槸i=1錛宩=1灝卞彲鍙栵紝鍥犱負(fù)1涔嬪墠娌℃湁鏁板瓧錛岃涓轟笌1涓嶅悓錛堣窡j>1涓鏍鳳級(jí)
蹇?jī)寰楀Q氬彧鑰冭檻鏈鍚庝竴涓瓧絎︼紙絎琲+1錛夛紝鑰冭檻鎬庝箞鍚堟硶榪囨潵鐨?br> dp杞Щ鏃訛紝鐢變箣鍓嶇殑杞Щ榪囨潵闅懼啓鐨勮瘽錛屽啓鎴愪粠褰撳墠鎵╁睍鍒頒箣鍚庣殑錛?br> 鎸夌収棰樻剰瀹氫箟鐘舵侊紝榪欓噷瑕?涓互涓婁笉鍚岋紝瀹氫箟鏈熬鏈塲涓笉鍚岋紙j=1鏃舵槸鐗規(guī)畩鎯呭喌錛屽嵆鏈熬鍙互鍑犱釜榪炵畫(huà)鐩稿悓錛?br>*/
hdu 3510
/*
棰樻剰錛氱粰鍑簄涓換鍔★紝m鍙版満鍣?nbsp; 浠誨姟闂存湁渚濊禆鍏崇郴錛岃繖浜涘叧緋繪瀯鎴愪竴媯墊爲(wèi) 闂渶鐭畬鎴愭椂闂?br> 鏄劇劧瀹屾垚鏃墮棿涓嶈兘灝戜簬鏈娣辯殑娣卞害錛岃屾瘡嬈″彧鑳介夊彾瀛愯鏈哄櫒鍔犲伐
榪欐牱錛屾瘡嬈¢夋繁搴︽渶娣辯殑鍙跺瓙鍔犲伐錛堢敤PQ錛夌洿鍒板畬鎴?br> 濡傛灉涓嶉夋繁搴︽渶娣辯殑錛屽彲鑳戒細(xì)浣挎椂闂村彉闀?br>*/
hdu 3508
/*
棰樻剰錛氶棶n鍐咃紝涓巒浜掕川鐨勬墍鏈夋暟鐨勪箻縐ān鏄灝?br> 鎵撲簡(jiǎn)涓浜涙暟鎹紝鍙戠幇鍙湁1鍜宯-1
褰搉=1,2,4,p^k,2*p^k鏃?nbsp; 絳旀涓簄-1
*/
hdu 3483
/*
棰樻剰錛氱粰鍑篘,x,M 瑕佽綆?br> N
鈭?k^x)*(x^k) MOD M
k=1
x
鐢ㄥ埌浜岄」寮忓畾鐞嗭紝(n+1)^x = 鈭慍(x,k)n^k
k=0
鐒跺悗鏋勯犵煩闃碉紝姹傚拰 S(n)琛ㄧず鍓峮欏瑰拰
http://www.shnenglu.com/Yuan/archive/2010/08/13/123268.html
*/
hdu 3366
/*
濡傛灉宸茬粡鐭ラ亾璧拌繖浜沺assage鐨勯『搴忕殑璇濓紝搴旇鍙互dp鍑烘潵鐨?br> 浣嗘槸榪欓噷涓嶇‘瀹氶『搴忥紝瑕侀夋嫨鏈浼橈紝鍙互鎸夌収P/Q浠庡ぇ鍒板皬鎺掑簭
閬囧埌鍖緬鍑犵巼Q瓚婂皬錛屽嚭鍘誨嚑鐜嘝瓚婂ぇ錛岃偗瀹氭槸鎴戜滑浼樺厛鑰冭檻鐨勶紒
Help Bill to find out the probability that he can escape from this castle if he chose the optimal strategy.
dp[i][j]琛ㄧず鐜板湪鏈夐挶j錛屽湪i涓猵assage澶勶紝鏈鍚庤兘澶熷嚭鍘葷殑姒傜巼
dp[n-1,j]=P[n-1]
dp[i,j]=P[i]+Q[i]*dp[i+1,j-1]+(1-P[i]-Q[i])*dp[i+1,j] j>0
dp[i,j]=P[i]+(1-P[i]-Q[i])*dp[i+1,j] j=0
姒傜巼棰樻湡鏈涢錛屼竴鑸兘鏄〃紺虹幇鍦ㄧ鐩爣鐨勫?br> 錛堝洜涓哄綋鍓嶆帴涓嬫潵鐨勬柟妗堢‘瀹氫簡(jiǎn)錛屾鐜囦篃鐭ラ亾浜?jiǎn)锛岃屽綋鍓嶄粠鍓嶉潰榪囨潵灝變笉紜畾姒傜巼浜?jiǎn)锛屽叾姒傜巼璺熻矾寰勬湁鍏冲Q?br>*/
8.13
zoj 2597
/*
棰樻剰錛氶鐩畾涔変竴縐峮浣嶇殑yellow code 鐩擱偦涓や釜鏁頒箣闂磋宸埆鑷沖皯[n/2]銆傝浣犳瀯閫犲嚭n浣嶇殑yellow code
瑙傚療鍙戠幇錛宯浣嶅彲浠ョ敱n-1浣嶅鍒朵竴閬嶏紝鐒跺悗鏈鍚庝竴鍒楀啀綆椾竴涓嬪緱鏉?br> 瀵規(guī)渶鍚庝竴鍒楃殑鍓峮涓垎鎼滃嵆鍙紝鍚巒涓槸鍓峮涓彇鍙?br>*/
zoj 1619
/*
棰樻剰錛歯涓漢n涓ぜ鐗╂販涔憋紝闂瘡浜哄彇涓涓紝鏈緇坢涓漢鍙栧埌鑷繁鐨勬鐜?br> 鐩存帴鐢ㄩ敊鎺掑叕寮忓嵆鍙?nbsp; C(n,m)*D[n-m]/n!
鎴栬卍p
dp[i,j]琛ㄧず鍓峣涓漢j涓彇寰楄嚜宸辯殑姒傜巼
dp[i,j]鍙互鍏堝畨緗ソi-1鐨勶紝鐒跺悗鍐嶇敤涔樻硶鍘熺悊涔樿搗鏉?br> dp[i,j] = dp[i-1,j]*(i-1-j)/i 鍏堟妸i-1涓漢瀹夌疆鍑簀涓漢鍙栧埌鑷繁鐨勬儏鍐碉紝涓轟嬌榪樻槸j涓漢錛岀i涓漢闇璺熷墿涓嬬殑i-1-j涓漢鍏朵腑涓涓氦鎹?br> + dp[i-1,j-1]*1/i 鍏堟妸i-1涓漢瀹夌疆鍑簀-1涓漢鍙栧埌鑷繁鐨勬儏鍐碉紝鐒跺悗絎琲涓漢鍙栧埌鑷繁鐨勬鐜?br> + dp[i-1,j+1]*(j+1)/i 鍏堟妸i-1涓漢瀹夌疆鍑簀+1涓漢鍙栧埌鑷繁鐨勬儏鍐碉紝鐒跺悗絎琲涓漢璺熻繖j+1涓漢涔嬩竴浜ゆ崲
*/
8.14
zoj 2703 琚繖閬撻鍗′簡(jiǎn)濂戒箙錛岃繕鏄痺a
8.16
鍋氫簡(jiǎn)涓嬩幾灞曟爲(wèi)鐨?br>spoj 4487 1470
8.17
cii 2193
/*
sample錛?br> ##-(##+###)
3333333
鐢ㄤ笅闈㈢殑鏁板瓧鍘誨~涓婇潰鐨?浣垮緱璇ュ紡瀛愭渶澶?nbsp; 鏈夊涓椂杈撳嚭瀛楀吀搴忔渶灝忕殑
棣栧厛錛屽幓鎷彿
娌℃湁鐪熺殑鍘繪帀錛屽埄鐢ㄦ嫭鍙峰墠鐨勯偅浜涙璐熷彿鏉ョ‘瀹氭瘡涓暟瀛楃湡瀹炵殑姝h礋鍙?br> 涓烘瘡涓暟瀛楁垨鑰呮嫭鍙瘋繖鏍風(fēng)殑鏁翠綋娣誨姞姝h礋鍙?br> 濡備笅闈㈢殑渚嬪瓙 +(-(+a+b)+c)
榪欓噷鍦ㄦ渶澶栫殑鎷彿鍙?qiáng)a涔熻鏈変竴涓鍙?/p>
涓轟簡(jiǎn)杞寲鍑轟笂闈㈢殑寮忓瓙鐢ㄤ竴涓爤
1) '(' 濡傛灉鍏跺墠闈笉鏄鍙鳳紝灝遍渶瑕佹坊鍔犱竴涓鍙鳳紙璺熸爤欏朵竴鏍鳳級(jí) push(top)
2) '(' pop
3) '±' push(op^top) 榪欓噷鎶婅礋鍙峰綋鎴?
4) '#' 濡傛灉鍏跺墠闈笉鏄鍙峰氨闇瑕佹坊鍔犱竴涓鍙鳳紙璺熸爤欏朵竴鏍鳳級(jí) push(top)
鐒跺悗榪炶... 瀛樿搗榪欎釜鏁?nbsp; 鍐峱op
姝f暟瀛樺湪positive 璐熸暟瀛樺湪negative
鐜板湪灝辨潵璐績(jī) 鍏堝皢digit鎺掑簭
瀵逛簬姝f暟錛屾瘡嬈″皢digit閲屾渶澶х殑鏁拌祴鍊肩粰positive閲岄暱搴︽渶澶х殑錛屾垨闀垮害鐩稿悓闈犲悗鐨?br> 瀵逛簬璐熸暟錛屾瘡嬈″皢digit閲屾渶灝忕殑鏁拌祴鍊肩粰negative閲岄暱搴︽渶澶х殑錛屾垨闀垮害鐩稿悓闈犲墠鐨?br>
鍙敤涓涓爢鏉ュ疄鐜幫紝鍙栧嚭鍚庡啀鏀捐繘鍘伙紙榪欐椂闀垮害灝?浜?jiǎn)锛?jí)
*/
浠婂ぉ鎺掍綅璧涳紝浠ヤ笅鐨勮繖閬撴爲(wèi)DP鎯充簡(jiǎn)鎴戝ソ鍥э紒
涓寮濮嬩貢鎼為珮鏂秷鍏冦傛垜絎簩嬈″啓楂樻柉娑堝厓錛岃繕鏄嚜宸遍粯鐨勩傞唹~~
鐒跺悗鍙戠幇錛屼細(xì)鍑虹幇鑷敱鍏冿紝涓轟簡(jiǎn)姹傚緱鏈灝忓鹼紝涓嶅緱浜岃繘鍒舵灇涓句簡(jiǎn)錛熶絾n<=100錛屾垜涔辨悶浜?jiǎn)涓涓嬶紝緇欐垜WA,涓嶇粰鎴?span>TLE
閿欎簡(jiǎn)8銆?span>9嬈″惂錛熷績(jī)紕庯紝鍙ソ鐢ㄦ爲(wèi)dp鍋氥傦紙鑶滄嫓涓嬫灄mm縐掓潃瀹冦?span>...Orz錛?br>(鍚庢潵鐪嬩簡(jiǎn)涓嬫彁浜よ褰曪紝16:41榪樻槸鎻愪氦楂樻柉娑堝厓錛屽師鏉ユ垜浜や簡(jiǎn)10嬈¢珮鏂傘俧t)
姣忎釜鐐硅褰曚笁涓姸鎬侊細(xì)
A[u] 閫?span>u u鍙?qiáng)鍏跺悗浠i兘浜?/span>
B[u] 涓嶉?span>u u鍙?qiáng)鍏跺悗浠i兘浜?/span>
C[u] 涓嶉?span>u u涓嶄寒錛屼絾鏄叾鍚庝唬閮戒寒
鏄劇劧鏈?span>A[u]=鈭?span>C[v] v鏄?span>u鐨勫効瀛?/span>
B[u],C[u]姣旇緝闅炬眰涓鐐癸紝闇瑕佸涓嬈?span>dp
鍋囪u鏈?span>n涓効瀛?/span>
dp[i,j]琛ㄧずu鐨勫墠i涓効瀛愪腑鏈?span>j涓効瀛愭槸鎸変簡(jiǎn)寮鍏崇殑錛堝嵆A[v]錛夌殑鏈灝忓?/span>
dp[i,j] = min(dp[i-1,j]+B[v],dp[i-j,j-1]+A[v])
閭d箞
B[u]=min(dp[n,k]); k涓哄鏁?/span>
C[u]=min(dp[n,k]); k涓哄伓鏁?/span>
涓涓暟鎹細(xì)
6
1 2
2 3
2 4
2 5
5 6
ans : 4
鐘舵佽〃紺轟負(fù)
dp[u,0] u鐖朵翰鏈寒錛寀鍙?qiáng)瀛愭爲(wèi)閮藉凡缁忕偣浜?br>dp[u,1] u鐖朵翰銆乽鏈寒錛屽瓙鏍?wèi)閮戒?br>dp[u,2] u鐖朵翰銆乽鍙?qiáng)瀛愭爲(wèi)閮戒寒浜?jiǎn)
杞Щ鏄細(xì)
dp[u,0] <- 濂囨暟涓猟p[v,2] + 鍓╀笅鐨刣p[v,0] v鏄痷鐨勫効瀛?br>dp[u,1] <- 鍋舵暟涓猟p[v,2] + 鍓╀笅鐨刣p[v,0]
dp[u,2] <- 鑷韓鐐逛寒1嬈?+ 鎵鏈夐兘鏄痙p[v,1]
娉ㄦ剰鐨勬槸鏈変竴縐嶆濇兂錛?br>鏂規(guī)鐐圭伅鐨勯『搴忔槸鏃犲叧鐨勶紝鎵浠ュ湪鑰冭檻u鏃訛紝鍏跺瓙鏍?wèi)璇ョ偣鐨勯兘宸簿l忕偣浜紝u鏄渶鍚庣偣鐨?br>榪欐牱浼?xì)娓呮櫚寰堝锛尀兏嶄細(xì)鍐嶅幓鑰冭檻v鏄惁榪樼偣
鎵浠?span style="BACKGROUND-COLOR: yellow">瀹為檯鎯呭喌浠庡簳寰涓婄偣鐏?/span>銆?/p>
闄勶細(xì)
There is a tree
Time Limit:1000MS Memory Limit:65535K
棰樺瀷: 緙栫▼棰?/span> 璇█: 鏃犻檺鍒?/span>
Description
Tree is a graphy without loop and direction when defined in the graphy theory realm. There is a tree with a light and a button at each node. If the button is presses, the state of light at this node will switch to the other state, meaning that it will trun from ON to OFF, or from OFF to ON. Besides, the state of light in the neighbour nodes will also switch from ON to OFF or OFF to ON.
At the beginning, all the lights are in the state OFF. It is your task to find out at least how many operations of switching should be performed in order to make all the light ON.
Input
There are mutiple of data sets in the file.
At each case, the first line contains an integer n, indicating the number of Nodes in the tree. (n<=100)
Then following n – 1 lines. Each line contains a pair number of x y, meaning that Node x and Node y is linked with an edge.
The input file is terminated by a 0.
Output
For each case, output the minimal number of operations to light up all the lights.
Sample Input
3
1 2
1 3
0
Sample Output
1
Illustration 1: 4-circle five-angle graph
棣栧厛錛屼腑闂寸殑鐜偗瀹氳鍘繪帀涓浜涳紝浣嗘槸鍘繪帀澶氬皯鏉°佸摢鍑犳潯鍛紵A peculiar graph, called n-circle five-angle graph, consists of a polygon with n vertices in the center, and each side of the central polygon is linked with a pentagon(pentagon: a polygon with 5 sides). There is an example of 4-circle five-angle graph below. Obviously, there are 4 vertices in the central polygon.
Now, it is you time to calculate how many spanning trees could this special graph generate. Pay attention that all the vertices in the graph should be regarded as different ones. Do you still remember the definition of spanning tree? Perhaps you may be familiar with the terminology of MST(minimal spanning tree). Yes, a spanning tree T of a connected, undirected graph G is a tree composed of all the vertices and some (or perhaps all) of the edges of G.
Illustration 1: 4-circle five-angle graph
Input:
First line: T, the number of test case.
Then follow T lines, each line contains a number n(n <= 2 <= 100), indicating it is an n-circle five-angle graph.
Output錛?/span>
For each test case, output the answer mod 2007 pre line.
Sample Input
1
2
Sample Output
40
嫻嬭瘯鏁版嵁錛?a href="http://www.shnenglu.com/Files/Yuan/in.txt">in.txt out.txt