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的因子...