**:csust訓練
a 小q系列故事――�絲的逆襲
hdu 4500 一道以前就做過的題,而且當時也做出來了,就是找到乙個得分最高的位置,女為正數,男為負數,與鄰居性別不同則加上絕對值,否則相減。
**: 15ms
1 #include2 #include3 #includeview code4using
namespace
std;
5int
main()628
}29 printf("
%d %d %d\n
",x,y,max);30}
31return0;
32 }
b coloring brackets
codeforces 149d
c multiplication puzzle
poj 1651 dp ,有n張牌,每拿走一張,sum+拿走的牌*左邊的一張*右邊的一張,最後只剩下兩張,求最小和。d[[i][j]表示拿走(i,j)之間牌的最小和;
**: 0ms
1 #include 2 #include 3 #included ping pong4using
namespace
std;
5int a[102],dp[105][105];6
int inf=0x3f3f3f3f;7
intmain()
822 printf("
%d\n
",dp[1
][n]);23}
24 }
poj 3928 有n個人要兩兩舉行桌球比賽,裁判必須住他們中間,技能值也必須在他們中間,求最多能舉行幾場比賽。求出a[i]左邊小於a[i]的人數c[i],a[i]右邊小於a[i]的人數d[i],那麼以a[i]為裁判能舉行c[i]*(n-i-d[i])+d[i]*(i-c[i]-1);
**: 219ms
1 #include 2 #include 3 #include4using
namespace
std;
5int a[20005],b[110005],c[20005],d[20005];6
inti,j,n;
7void updata(int x,int
num)814
}15int getsum(int
x)16
23return
s;24}25
intmain()
2642 memset(b,0,sizeof
(b));
43for(i=n;i>=1;i--) //
從後找在右邊比a[i]小的個數
4448
for(i=2;i<=n-1;i++)
49 sum+=c[i]*(n-i-d[i])+d[i]*(i-c[i]-1
);50 printf("
%i64d\n
",sum);51}
52return0;
53 }
8月22日小練
8月21日小練 a find the shortest common superstring hdu 1841 b 免費餡餅 hdu 1176 dp 思路 從時間後往前推,dp i j 表示在i,j地能接到的最多的餡餅數。46ms 1 include 2 include 3 include 4usi...
8月15日小練
csust練習5 a n hdu 1042 n的階乘,大數相乘,這裡的n 10000,故可以用陣列不用字串。1546ms 1 include 2 include 3 using namespace std 4int a 40000 5 intmain 615 a 0 1 0 記錄陣列的長度 16 a...
8月6日小練
csust小練習1 以後每天21 30 23 30都有小練 a max sum hdu 1003 大意是 給出n個數,找出最大的和,輸出起點和終點的編號 本來是暴力做,不出所料的超時了orz.15ms 1 include2 include3 using namespace std 4int main...