比赛链接: http://acm.fzu.edu.cn/contest/list.php?cid=115
A.FZU 2034
简单题!照题目做就行了!
# include<map>
# include<set>
# include<cmath>
# include<queue>
# include<stack>
# include<vector>
# include<string>
# include<cstdio>
# include<cstring>
# include<iostream>
# include<algorithm>
# include<functional>
using namespace std;
typedef pair<int,int> PII;
# define INF 1<<30
# define LL long long
# define MOD 1000000007
# define VI vector<int>
# define VLL vector<LL>
# define VPII vector<PII>
# define VS vector<string>
# define PII pair<int,int>
# define F first
# define S second
# define mp make_pair
# define pb push_back
# define lb lower_bound
# define up upper_bound
# define lowbit(x)(x&-x)
# define lson l,m,rt<<1
# define rson m+1,r,rt<<1|1
# define clr(x) (x).clear()
# define sz(x) ((int)(x).size())
# define all(x) (x).begin(),(x).end()
# define mem(x,y) memset(x,y,sizeof(x))
# define forall(it,c) for(typeof((c).begin())it=(c).begin();it!=(c).end();it++)
# define N 20
int a[N][N];
char s[N];
int main()
{
//freopen("in.txt","r",stdin);
int cas, i, j, T, n, m, q, len;
scanf ("%d", &T);
for (cas = 1; cas <= T; cas++)
{
scanf ("%d %d %d", &n, &m, &q);
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
scanf ("%d", &a[i][j]);
printf ("Case %d:\n", cas);
for (i = 1; i <= q; i++)
{
scanf ("%s", s);
len = strlen (s);
for (j = 0; j < len; j += 2)
printf ("%02d", a[s[j + 1] - '0'][s[j] - 'A' + 1]);
printf ("\n");
}
}
return 0;
}
B.FZU 2035
C.FZU 2036
D.FZU 2037
打表找规律!
# include<map>
# include<set>
# include<cmath>
# include<queue>
# include<stack>
# include<vector>
# include<string>
# include<cstdio>
# include<cstring>
# include<iostream>
# include<algorithm>
# include<functional>
using namespace std;
typedef pair<int,int> PII;
# define INF 1<<30
# define LL long long
# define MOD 1000000007
# define VI vector<int>
# define VLL vector<LL>
# define VPII vector<PII>
# define VS vector<string>
# define PII pair<int,int>
# define F first
# define S second
# define mp make_pair
# define pb push_back
# define lb lower_bound
# define up upper_bound
# define lowbit(x)(x&-x)
# define lson l,m,rt<<1
# define rson m+1,r,rt<<1|1
# define clr(x) (x).clear()
# define sz(x) ((int)(x).size())
# define all(x) (x).begin(),(x).end()
# define mem(x,y) memset(x,y,sizeof(x))
# define forall(it,c) for(typeof((c).begin())it=(c).begin();it!=(c).end();it++)
# define N 1000005
LL Count[N];
double ans[N];
void pre(int limit)
{
int i;
LL f = 1;
Count[1] = 1;
ans[1] = 1.0;
//printf ("%.6lf\n", ans[1]);
for (i = 2; i <= limit; f = (f * i) % MOD, i++)
{
Count[i] = ((Count[i - 1] * i) % MOD + f) % MOD;
ans[i] = (ans[i - 1] * i + 1) / i;
}
}
int main()
{
//freopen("in.txt","r",stdin);
pre(1000000);
int cas, T, n;
scanf ("%d", &T);
for (cas = 1; cas <= T; cas++)
{
scanf ("%d", &n);
double s = ans[n];
//printf ("%.6lf\n", s);
printf ("Case %d: %d ", cas, Count[n]);
printf ("%.6lf\n", ans[n]);
}
return 0;
}
E.FZU 2038
# include<map>
# include<set>
# include<cmath>
# include<queue>
# include<stack>
# include<vector>
# include<string>
# include<cstdio>
# include<cstring>
# include<iostream>
# include<algorithm>
# include<functional>
using namespace std;
typedef pair<int,int> PII;
# define INF 1<<30
# define LL long long
# define MOD 1000000007
# define VI vector<int>
# define VLL vector<LL>
# define VPII vector<PII>
# define VS vector<string>
# define PII pair<int,int>
# define F first
# define S second
# define mp make_pair
# define pb push_back
# define lb lower_bound
# define up upper_bound
# define lowbit(x)(x&-x)
# define lson l,m,rt<<1
# define rson m+1,r,rt<<1|1
# define clr(x) (x).clear()
# define sz(x) ((int)(x).size())
# define all(x) (x).begin(),(x).end()
# define mem(x,y) memset(x,y,sizeof(x))
# define forall(it,c) for(typeof((c).begin())it=(c).begin();it!=(c).end();it++)
# define N 100005
# define M 200005
int n, son[N];
int num, head[N];
LL ans;
struct edge
{
int u, v, w, next;
}e[M];
void addedge(int u, int v, int w)
{
e[num].u = u;
e[num].v = v;
e[num].w = w;
e[num].next = head[u];
head[u] = num++;
}
void getSon(int u, int fa)
{
int i, v;
son[u] = 1;
for (i = head[u]; i != -1; i = e[i].next)
{
v = e[i].v;
if (v == fa) continue;
getSon(v, u);
son[u] += son[v];
}
//printf ("%d %d\n", u, son[u]);
}
void dfs(int u, int fa)
{
int i, v, up, down;
for (i = head[u]; i != -1; i = e[i].next)
{
v = e[i].v;
if (v == fa) continue;
//printf ("u : %d\n", son[u]);
down = son[v];
up = n - son[v];
//printf ("%d : %d %d\n", u, up, down);
ans += (LL)down * up * e[i].w * 2;
dfs(v, u);
}
}
void init()
{
num = 0;
mem (head, -1);
}
int main()
{
//freopen("in.txt","r",stdin);
int cas, T, i, u, v, w;
scanf ("%d", &T);
for (cas = 1; cas <= T; cas++)
{
init();
ans = 0;
scanf ("%d", &n);
for (i = 1; i < n; i++)
{
scanf ("%d %d %d", &u, &v, &w);
addedge(u, v, w);
addedge(v, u, w);
}
getSon(0, -1);
dfs(0, -1);
printf ("Case %d: %I64d\n", cas, ans);
}
return 0;
}
F.FZU 2039
简单的二分图匹配!
# include<map>
# include<set>
# include<cmath>
# include<queue>
# include<stack>
# include<vector>
# include<string>
# include<cstdio>
# include<cstring>
# include<iostream>
# include<algorithm>
# include<functional>
using namespace std;
typedef pair<int,int> PII;
# define INF 1<<30
# define LL long long
# define MOD 1000000007
# define VI vector<int>
# define VLL vector<LL>
# define VPII vector<PII>
# define VS vector<string>
# define PII pair<int,int>
# define F first
# define S second
# define mp make_pair
# define pb push_back
# define lb lower_bound
# define up upper_bound
# define lowbit(x)(x&-x)
# define lson l,m,rt<<1
# define rson m+1,r,rt<<1|1
# define clr(x) (x).clear()
# define sz(x) ((int)(x).size())
# define all(x) (x).begin(),(x).end()
# define mem(x,y) memset(x,y,sizeof(x))
# define forall(it,c) for(typeof((c).begin())it=(c).begin();it!=(c).end();it++)
# define N 105
int n, m, e;
int g[N][N], linker[N], used[N];
int dfs(int u)
{
int v;
for (v = 1; v <= m; v++)
if (g[u][v] && !used[v])
{
used[v] = 1;
if (linker[v] == -1 || dfs(linker[v]))
{
linker[v] = u;
return 1;
}
}
return 0;
}
int hungary()
{
int u, ans = 0;
mem (linker, -1);
for (u = 1; u <= n; u++)
{
mem (used, 0);
if (dfs(u))
ans++;
}
return ans;
}
int main()
{
//freopen("in.txt","r",stdin);
int i, j, u, v, cas, T;
scanf ("%d", &T);
for (cas = 1; cas <= T; cas++)
{
scanf ("%d %d %d", &n, &m, &e);
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
g[i][j] = 1;
for (i = 1; i <= e; i++)
{
scanf ("%d %d", &u, &v);
g[u][v] = 0;
}
int ans = hungary();
printf ("Case %d: %d\n", cas, ans);
}
return 0;
}
G.FZU 2040
H.FZU 2041
I.FZU 2042
J.FZU 2043
