8月19日小練

2022-05-19 01:41:19 字數 1631 閱讀 9725

**:csust訓練

a  小q系列故事――�絲的逆襲

hdu 4500   一道以前就做過的題,而且當時也做出來了,就是找到乙個得分最高的位置,女為正數,男為負數,與鄰居性別不同則加上絕對值,否則相減。

**:   15ms

1 #include2 #include3 #include

4using

namespace

std;

5int

main()628

}29 printf("

%d %d %d\n

",x,y,max);30}

31return0;

32 }

view code

b     coloring brackets

codeforces 149d

c     multiplication puzzle

poj 1651   dp ,有n張牌,每拿走一張,sum+拿走的牌*左邊的一張*右邊的一張,最後只剩下兩張,求最小和。d[[i][j]表示拿走(i,j)之間牌的最小和;

**:     0ms

1 #include 2 #include 3 #include 

4using

namespace

std;

5int a[102],dp[105][105];6

int inf=0x3f3f3f3f;7

intmain()

822 printf("

%d\n

",dp[1

][n]);23}

24 }

d     ping pong

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 #include 

4using

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...