比赛链接: 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;
}
View Code

 

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;
}
View Code

 

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;
}
View Code

 

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;
}
View Code

 

G.FZU 2040

 

H.FZU 2041

 

I.FZU 2042

 

J.FZU 2043