牛客IOI周賽22 普及組

2021-10-18 07:18:47 字數 2446 閱讀 7967

1.戰爭尾聲

題目鏈結

題解:因為資料量非常小,直接遍歷每乙個點即可

**:

#include

#include

#include

using

namespace std;

typedef pair<

int,

int> pii;

double

getlength

(double x,

double y, pii v)

intmain()

for(

int i =

1; i <=

200; i++

)for

(int j =

1; j <=

200; j++)}

} cout <<

"war is cruel."

<< endl;

system

("pause");

}

2.簽訂協議

題目鏈結

題解:我們建立乙個包含國家戰力和編號的結構體,按國家戰力進行由大到小的排序,依次遍歷,如何後乙個的編號比前乙個小,說明進行了一次輪轉

**:

#include

#include

#include

using

namespace std;

const

int n=

1e6;

struct member

}a[n]

;int n;

intmain()

sort

(a+1

,a+n+1)

;int ans=1;

for(

int i=

2;i<=n;i++)if

(a[i]

.id.id)

ans++

; cout<

}

3.照看小貓

題目鏈結

題解:我們按字數要求從小到大對貓進行排序,並且優先考慮字數長度小的,因為先考慮字數小的一定會對字數大的貓選名字產生影響,但字數大的貓選名字不一定會對字數小的貓產生影響。具體見**注釋

**:

#include

#include

#include

#include

using

namespace std;

typedef

long

long l;

const

int mod =

77797

;int a[

10000+10

];int n;

l b[15]

;int

main()

l ans =1;

for(

int i =

1; i <= n; i++

) g %

= mod;

ans = ans * g % mod;

//事件與事件間是乘法關係

} cout << ans << endl;

}

4.路線規劃

題目鏈結

題解:最初讀題目以為是狀壓dp,但看見走過的路最少的前提下,可見就是乙個最小生成樹的模板題

**:

#include

#include

#include

#define ll long long

using

namespace std;

ll n, m, x, y, num, ans, fa[

200021];

struct node

a[2000021];

bool

cmp(node a, node b)

ll find

(ll x)

intmain()

}printf

("%lld"

, ans *2)

;return0;

}

牛客IOI周賽22 普及組

暴力列舉 author sunlakewalk include include include include include include include include include include include include include include include includ...

牛客IOI周賽22 普及組

a.戰爭尾聲 思路 列舉從 1,1 至 200,200 所有的點,判斷是否存在乙個點到其他所有點距離均相等,然而這道題實際上不一定要開double 用int一樣可以過,因為在計算距離的時候保留距離的平方值進行比較也是可以允許的,時間複雜度 o n 200 2 100分 include include...

牛客IOI周賽20 普及組

牛客的簽到題,最暴力的做法就是把數每個因子羅列出來,但是這樣只有60的暴力分,我們從題目的資料可以看到 資料範圍是1e7的,在學習素數的時候我們知道乙個因子就能推出另乙個因子,所以我們沒必要從1判斷到n 1 直接i i n就能找到所有的因子,但是注意像16這樣的數,當我們的i為4的時候,這個4的因子...