暴力列舉
/*
*@author sunlakewalk
*/#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#pragma gcc optimize(2)
//#pragma gcc optimize(3, "ofast", "inlin")
using
namespace std;
#define ios ios::sync_with_stdio(false) , cin.tie(0)
#define x first
#define y second
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
const
int n =
210, inf =
0x3f3f3f3f
, mod =
1e9+
7, base =
131;
const
double eps =
1e-4
, pi =
acos(-
1);struct node
a[n]
;int n;
double
get(node a,
int x,
int y)
void
work()
for(
int i =
1; i <=
200; i ++
)for
(int j =
1; j <=
200; j ++)if
(f)}
cout <<
"war is cruel."
<< endl;
}int
main()
return0;
}
先離散化
然後,我們按照從小到達的順序來看每個數。
只要當前數該在的位置,大於他接下來的數該在的位置,說明當前出現了上公升趨勢,那就計數。
/*
*@author sunlakewalk
*/#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#pragma gcc optimize(2)
//#pragma gcc optimize(3, "ofast", "inlin")
using
namespace std;
#define ios ios::sync_with_stdio(false) , cin.tie(0)
#define x first
#define y second
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
const
int n =
800010
, inf =
0x3f3f3f3f
, mod =
1e9+
7, base =
131;
const
double eps =
1e-6
, pi =
acos(-
1);int n;
int a[n]
, b[n]
, pa[n]
;void
print()
void
work()
sort
(b +
1, b +
1+ n)
;for
(int i =
1; i <= n; i ++
)for
(int i =
1; i <= n; i ++
) pa[a[i]
]= i;
// print();
int res =
0, pre =0;
for(
int i =
1; i <= n; i ++
) cout << res << endl;
}int
main()
return0;
}
最小生成樹
/*
*@author sunlakewalk
*/#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#pragma gcc optimize(2)
//#pragma gcc optimize(3, "ofast", "inlin")
using
namespace std;
#define ios ios::sync_with_stdio(false) , cin.tie(0)
#define x first
#define y second
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
const
int n =
200010
, m =
4000010
, inf =
0x3f3f3f3f
, mod =
1e9+
7, base =
131;
const
double eps =
1e-6
, pi =
acos(-
1);struct node
}edges[m]
;int n, m;
int f[n]
;void
init()
intget
(int x)
void
kruskal()
cout << res *
2<< endl;
}void
work()
;}sort
(edges, edges + m)
;kruskal()
;}intmain()
return0;
}
牛客IOI周賽22 普及組
1.戰爭尾聲 題目鏈結 題解 因為資料量非常小,直接遍歷每乙個點即可 include include include using namespace std typedef pair int,int pii double getlength double x,double y,pii v intma...
牛客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的因子...