zoukankan      html  css  js  c++  java
  • 锡 代码块

    10.14

    10.13

    Bzoj5004开锁魔法II

    #include <bits/stdc++.h>
    using namespace std;
    #define gc getchar()
    #define sep(i, x, y) for(i = x;i <= y;++ i)
    #define rep(i , x, y) for(int i = x;i <= y;++ i)
    
    inline int gi() {
    	int x = 0,f = 1;char c = gc;
    	while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
    	while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
    	return x * f;
    }
    
    const int maxN = 300 + 7;
    const int maxM = 600 + 7;
    
    int to[maxN];
    bool vis[maxN];
    int ska[maxN] , low[maxN] , dfn[maxN], belong[maxN], size[maxN], cnt, top, num;
    int n, m;
    
    
    void dfs(int u) {
    	dfn[u] = low[u] = ++ cnt;
    	ska[++ top] = u;
    	int v = to[u];
    	if(!dfn[v]) {
    		dfs(v);
    		low[u] = min(low[v],low[u]);
    	}
    	else if(!belong[v]) low[u] = min(low[v],dfn[u]);
    	if(dfn[u] == low[u]) {
    		++ num;
    		while(ska[top] != u) belong[ska[top --]] = num,size[num] ++;
    		belong[ska[top --]] = num;
    		size[num] ++;
    	}
    	return ;
    }
    
    long double f[maxN][maxN], C[maxN][maxN];
    
    void Pre() {
    	rep(i , 1 , n) if(!vis[i]) dfs(i);
    	C[0][0] = 1;
    	rep(i , 1, n) {
    		C[i][0] = 1;
    		rep(j , 1, i) {
    			C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
    		}
    	}
    }
    
    void Solve() {
    	f[0][0] = 1.0;
    	rep(i , 1, num) {
    		rep(j , 1, m) {
    			rep(k , 1, size[i]) {
    				if(j - k >= 0) f[i][j] += f[i - 1][j - k] * C[size[i]][k];
    			}
    		}
    	}
    	return ;
    }
    
    int main() {
    	n = gi() , m = gi();
    	rep(i , 1, n) {
    		int x = gi();
    		to[i] = x;
    	}
    	Solve();
    	printf("%lf",f[n][m] / C[n][m]);
    	return 0;
    }
    

    BZOJ5091 摘苹果

    
    #include <bits/stdc++.h>
    using namespace std;
    #define gc getchar()
    #define sep(i, x, y) for(i = x;i <= y;++ i)
    #define rep(i , x, y) for(int i = x;i <= y;++ i)
    inline int gi() {
    	int x = 0,f = 1;char c = gc;
    	while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
    	while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
    	return x * f;
    }
    const int maxN = 1e6 + 7;
    int d[maxN] , a[maxN];
    
    int main() {
    	int n = gi(), m = gi(), k = gi();	
    	rep(i , 1, n) a[i] = gi();
    	rep(i , 1, m) {
    		int u = gi() , v = gi();
    		d[u] ++;d[v] ++;
    	}
    	double ans = 0;
    	rep(i , 1, n) {
    		ans += 1.0 * d[i] * a[i] / (2.0 * m);
    	}
    	ans *= k;
    	cout << ans;
    	return 0;
    } 
    

    10.4

    BZOJ4247 挂饰

    const int maxN = 2e3 + 7;
    
    struct Node{
        int a , b;
    }a[maxN];
    
    int f[maxN][maxN];
    
    bool cmp(Node a, Node b) {
        return a.a > b.a;
    }
    
    signed main() {
        int n = gi();
        rep(i , 1, n) {
            a[i].a = gi();
            a[i].b = gi();
        }
        sort(a + 1,a + n + 1, cmp);
        int ans = 0;
        memset(f,-0x3f,sizeof(f));
        f[0][1] = 0;
        rep(i , 1, n) {
            rep(j , 0, n) {
                f[i][j] = max(f[i - 1][j] , f[i - 1][max(j - a[i].a , 0LL) + 1] + a[i].b);
            }
        }
        for(int i = 0;i <= n;++ i) ans = max(ans , f[n][i]);
        printf("%lld",ans);
        return 0;
    }
    /*
    5
    0 4
    2 -2
    1 -1
    0 1
    0 3
    */
    

    BZOJ 1003 [ZJOI2006]物流运输

    const int maxM = 1e5 + 7;
    const int maxN = 10000 + 7;
    const int inf = 1000000000;
    struct Node{
        int v , nex, w;
    }Map[maxM];
    int head[maxN] , num;
    void add_Node(int u , int v, int w) {
        Map[++ num] = (Node) {v , head[u], w};
        head[u] = num;
    }
    
    PII a[maxN];
    int b[maxN];
    int f[maxN],d;
    int n, m, k, e;
    bool vis[maxN],v[maxN];
    int dis[maxN];
    queue<int> q;
    bool ok[1001][1001];
    
    
    int cost(int l , int r) {
        rep(i , 1, m) dis[i] = inf , v[i] = 0,vis[i] = true;
        rep(i , 1, d) {
            rep(j , l ,r) {
                if(ok[b[i]][j]) {
                    vis[b[i]] = false;
                    break;
                } 
            }
        }   
        q.push(1);
        dis[1] = 0;v[1] = 1;
        while(!q.empty()) {
            int now = q.front();q.pop();
            v[now] = 0;
            for(int i = head[now];i;i = Map[i].nex) {
                int y = Map[i].v;
                if(!vis[y]) continue;
                if(dis[y] > dis[now] + Map[i].w) {
                    dis[Map[i].v] = dis[now] + Map[i].w;
                    if(!v[y]) {
                        v[y] = true;
                        q.push(y);
                    }
                }
            }
        }
        if(dis[m] == inf) return inf;
        return dis[m] * (r - l + 1); 
    }
    
    int main() {
        memset(f , 0x3f, sizeof(f));
        n = gi() , m = gi(), k = gi(), e = gi();
        while(e --) {
            int u = gi() , v = gi(), w = gi();
            add_Node(u , v, w);
            add_Node(v , u, w);
        }
        f[0] = 0;
        d = gi();   
        for(int i = 1;i <= d;++ i) {
            b[i] = gi(); int t1 = gi() , t2 = gi(); 
            rep(j , t1, t2) ok[b[i]][j] = true;
        }
        rep(i , 1, n) {
            f[i] = cost(1 , i);
            rep(j , 1, i - 1) {
                f[i] = min(f[j] + cost(j + 1, i) + k ,f[i]);
            }
        }
        printf("%d",f[n]);
        return 0;
    }
    
  • 相关阅读:
    CROC 2016
    CROC 2016
    CROC 2016
    IndiaHacks 2016
    IndiaHacks 2016
    @JsonProperty的使用
    JDK8新特性:函数式接口@FunctionalInterface的使用说明
    cannot nest '/dubboService/src/main/resources' inside '/dubboService/src/main' .To enable the nesting exclude '/resources' from '/dubboService/src/main'
    【转】关于BeanUtils.copyProperties的用法和优缺点
    JAXB--@XmlElementWrapper注解(二)
  • 原文地址:https://www.cnblogs.com/gaozhuoyuan/p/11623868.html
Copyright © 2011-2022 走看看