2019nc#2
Posted ckxkexing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019nc#2相关的知识,希望对你有一定的参考价值。
A Eddy Walker
题意
你有n个点(0~n-1),按顺序形成一个环,初始时你在0的位子,你随机顺时针走一步或者逆时针走一步,
一旦你走到一个点后,环上所有点都被经过至少一次后,你就必须停下来。
问你最后停留在m这个位子的概率是多少。
思路
有意思的概率题。
读懂题意后发现这道题不难,模拟下可以发现在最后落在(1~n-1)的位子是等概率的,落在0这个位子是不可能的(除非n==1)。
#include <iostream> #include <vector> #include <queue> #include <algorithm> using namespace std; #define pb push_back #define fi first #define se second #define debug(x) cerr<<#x << " := " << x << endl; #define bug cerr<<"-----------------------"<<endl; #define FOR(a, b, c) for(int a = b; a <= c; ++ a) typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; template<class T> void _R(T &x) cin >> x; void _R(int &x) scanf("%d", &x); void _R(ll &x) scanf("%lld", &x); void _R(double &x) scanf("%lf", &x); void _R(char &x) scanf(" %c", &x); void _R(char *x) scanf("%s", x); void R() template<class T, class... U> void R(T &head, U &... tail) _R(head); R(tail...); template<typename T> inline T read(T&x) x=0;int f=0;char ch=getchar(); while (ch<‘0‘||ch>‘9‘) f|=(ch==‘-‘),ch=getchar(); while (ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar(); return x=f?-x:x; const int inf = 0x3f3f3f3f; const int mod = 1e9+7; /**********showtime************/ ll ksm(ll a, ll b) ll res = 1; while(b > 0) if(b & 1) res = res * a % mod; a = a * a % mod; b = b >> 1; return res; int main() int T; scanf("%d", &T); ll res = 1; while(T--) ll n,m; scanf("%lld%lld", &n, &m); if(n == 1 && m == 0) res = res; else if(m == 0) res = res * 0; else res = res * ksm(n-1, mod-2) % mod; printf("%lld\n", res); return 0;
B Eddy Walker 2
D Kth Minimum Clique
E MAZE
F Partition problem
比赛时过的,双向搜索降低复杂度(队友搞的,我还没搞)
I Inside A Rectangle
H Second Large Rectangle
比赛时过的。DP出面积,找出次大的
(队友搞的,我还没搞)
J Subarray
以上是关于2019nc#2的主要内容,如果未能解决你的问题,请参考以下文章
2018-2019-2 20165307《网络对抗技术》Exp2 后门原理与实践