第四屆福建省大學生程式設計競賽(部分)

2021-08-18 19:49:02 字數 3488 閱讀 4946

fzu 2140

題意:

給你乙個數n,讓你找出n個點,滿足一下關係:

任意兩點的距離不大於1.0

所有點到原點的距離不大於1.0

恰好有n對點的距離為1.0

由這些點構成的n邊形的面積不小於0.5

由這些點構成的n邊形的面積不大於0.75

思路:由於所有點到原點距離為1,那麼首先想到的是圓。

假設輸入的點為1或者2,構不成多邊形。

當n==3時,例如圖a,o,b三點(前三條符合要求),△aob是乙個等邊三角形,面積為0.216506,不符合要求

當n>=4時,把另乙個點設定在c點,ab=ob=oc=1,

四邊形acbo的面積為0.5,符合要求,那麼剩下的點都放在c處即可,因為題目沒有要求說不能在一處

題意:判斷輸入字串的個數

思路:輸入字元陣列,然後strlen(),求長度取餘判斷奇偶

#include

#include

#include

using

namespace

std;

int main()

else

cout

<< endl;}}

return

0;}

fzu - 2147

題意:

給出乙個數字a和b,要求a經過變化成為a`,a`<=b,計算出最小需要多少次變化

變化的公式是a-(a%x),x是[1,a-1]之間的任意值

思路:需要變化的最少,那麼每次減去的數字要最大,最大的時候正是x=a/2+1的時候,公式是自己推的

例如8,8/3=5,7,7/3=4,可以看出。

#include

#include

#include

typedef

long

long ll;

using

namespace

std;

int main()

printf("case %d: ", i);

cout

<< time << endl;

}return

0;}

fzu - 2148

題意:給出n個點,判斷出一共有多少個凸包

思路:凸包不好計算,轉化為凹包計算,首先列舉出四個點,分別以其中的三個點為三角形計算出面積

由於不知道那個點是凹點,列舉測試,如果是凹包返回false

如上圖,左邊是凹包,右邊是凸包,凹包性質是s△bcd=s△acd+s△acb+s△abd,凸包沒有這個性質,那麼通過這個性質可以排除凹包,剩下的就是凸包(題目說沒有三點共線)

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

double inf=1e-6;

struct node

num[35];

double area(node a,node b,node c)

bool is_ok(node a,node b,node c,node d)

int main()

return

0;}

fzu - 2150

題意:#代表草地,.代表空地,要求只能選擇兩個位置點火(火可以在時間1內向四周蔓延),輸入地圖,輸出最短多長時間全部燒完,如果不能輸出-1

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define inf 0x3f3f3f

struct point

; int n, m;

char

map[15][15];

int dis[15][15];

queue

que;

int dirx[4] = ;

int diry[4] = ;

int bfs(int x1, int y1, int x2, int y2)

} }

int maxx = 0;

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

for (int j = 0 ; j < m; j++)

if (map[i][j] == '#')

return maxx;

} int main()

if (ans == inf) ans = -1;

cout

<< "case "

<< cas << ": "

<< ans << endl;

} }

fzu - 2151

題意:輸入一串字串,o和x,fat brother和maze,每人輪流選擇乙個o變為x,直到不能變為止,輸出誰贏,f先

思路:如果o的個數為偶數那麼fat brother贏,奇數maze贏

#include

#include

#include

using

namespace

std;

int main()

}getchar();

}printf("case %d: ", i);

if(ans % 2 == 0)

else

cout

<< "maze";

cout

<< endl;

}return

0;}

第四屆 2023年十月 福建省大學生程式設計競賽

g easy game 題目鏈結 題意 輸入乙個字串,判斷該字串長度的奇偶性。相當簡單。author liuwen include include include include using namespace std int main else return 0 h a b game 題目鏈結 題...

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

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