第七屆福建省程式設計競賽題解

2021-08-19 23:37:39 字數 3623 閱讀 8523

a.best friend forever

b.card game(second edition)

#include 

#include

#include

#include

#include

using

namespace

std;

int a[11111];

int b[11111];

int main()

for(int i=1;i<=n;i++)

// coutint tmp1=0,tmp2=0;

for(int i=1;i<=n;i++)

// coutprintf("case %d: %.2lf\n",++cas,ans);

}return

0;}

c.bond

d.the bigger the better

給你兩個數列,讓你拼湊出最大的整數。

注意相同數字出現的時候的考慮,以及memcmp,memset的使用。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long int

#define inf 0x3f3f3f3f

#define irish_moonshine main

const

int maxn = 2e5 + 2333;

int a[maxn];

int b[maxn];

int ans[maxn];

int irish_moonshine()

else }}

while (pos1 < n) ans[cnt++] = a[pos1++];

while (pos2 < m) ans[cnt++] = b[pos2++];

printf("case %d: ", ++cs);

for (int i = 0; i < cnt; i++)

printf("\n");

}return

0;}

e.card game(first edition)

#include 

#include

#include

#include

#include

using

namespace

std;

int main()

printf("case %d: %.2lf\n",++cas,1.0*n/2);

}return

0;}

f.card game(third edition}

#include 

#include

#include

#include

#include

using

namespace

std;

int a[11111];

int b[11111];

int main()

printf("case %d: %d\n",++cas,ans);

}return

0;}

g.cutting game

#include 

#include

#include

#include

#include

using

namespace

std;

int main()

}printf("case %d: %d\n",++cas,ans);

}return

0;}

h.picking game

i.two ********s

判斷全等三角形數量,需要除去手性對稱的情況。暴力。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long int

#define inf 0x3f3f3f3f

int x[20], y[20];

int n, t, ans, cnt, num;

int vis[20];

int len(int a, int b)

bool check(int &a, int &b, int &c)

else

if (tmp < 0)

else

return

0; a = l1;

b = l2;

c = l3;

return1;}

void slove(int a, int b, int c) }}

}int main()

ans = 0;

for (int i = 1; i <= n - 2; i++) }}

printf("case %d: %d\n", ++cs, 2 * ans);

}return0;}

//_crt_secure_no_warnings

j.x

多源最短路floyd,需要預處理路徑,然後記錄哪些路徑被使用了。

#include 

#include

#include

#include

using

namespace

std;

const

int inf = 0x3f3f3f3f;

int mp[111][111];

int used[111][111];

int n,m;

void floyd()}}

}}struct node

len[40200];

int xmp[111][111];

int main()

}int now = 0;

for(int i=1;i<=m;i++)

}int cnt = 0;

/* for(int i=1;i<=n;i++)

}}*/

floyd();

int ans=0;

/* for(int i=1;i<=cnt;i++)*/

for(int i=1;i<=n;i++)

for(int j=i+1;j<=n;j++)

if(used[i][j]==1&&xmp[i][j]!=inf)

ans++;

printf("case %d: %d\n",++cas,ans+now);

}return

0;}

第七屆福建省賽RMQ with Shifts

這道題赤裸裸的線段樹,不過就是輸入有點難搞,加上錯的方式很離譜就寫上來了。坑 乙個陣列,求指定區間內的最小值,輸入 query 3,7 代表查詢第3至第7的最小值。shift 2,4,5,7 代表把第2 4 5 7上的數依次向左移動一位。每shift一次就更新線段樹一次 include includ...

第七屆福建省大學生程式設計競賽

b 計算得分的期望 include include include include using namespace std int main return 0 e 直接根據牌的數量來計算,直接拿n 0.5就是答案。include include include define iloveu retur...

2016 第七屆福建省大學生程式設計競賽

a.b.c.題意 兩人輪流玩卡片,共n 2張,每次隨機抽一張,比較大小,贏了的話加一分勝點,求fat brother的期望勝點。思路 兩人獲勝的期望是相等的,所以直接n 2就是結果了 include include using namespace std const int n 2e4 5 int ...