题解

1309 条题解

  • -1
    @ 2017-10-07 16:54:42
    #include <cmath>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iomanip>
    #include <algorithm>
    #include <vector>
    #include <deque>
    #include <limits>
    #include <string>
    #include <sstream>
    using namespace std;
    
    const int oo_min=0xcfcfcfcf,oo_max=0x3f3f3f3f;
    
    int n,m,t;
    vector<int> f;
    vector<int> e;
    vector<int> u;
    vector<int> pre;
    vector<int> vis;
    vector<vector<int> > c;
    vector<vector<int> > p;
    vector<vector<int> > ce;
    vector<vector<int> > cw;
    deque<int> q;
    
    void add_edge_1(int x,int y,int c_v,int p_v)
    {
        cw[x].push_back(y);
        c[x].push_back(c_v);
        p[x].push_back(p_v);
        ce[y].push_back(cw[x].size()-1);
        cw[y].push_back(x);
        c[y].push_back(0);
        p[y].push_back(-p_v);
        ce[x].push_back(cw[y].size()-1);
    }
    
    int bfs_1(int s,int t,int *flow,int *cost)
    {
        f.resize(0);
        f.resize(cw.size(),0);
        f[s]=oo_max;
        e.resize(0);
        e.resize(cw.size(),-1);
        u.resize(0);
        u.resize(cw.size(),oo_max);
        u[s]=0;
        pre.resize(0);
        pre.resize(cw.size(),-1);
        pre[s]=s;
        vis.resize(0);
        vis.resize(cw.size(),0);
        for (q.resize(0),vis[s]=1,q.push_back(s);(!q.empty());vis[q.front()]=0,q.pop_front())
        {
            int now=q.front();
            for (int i=0;i<cw[now].size();i++)
                if (c[now][i]&&u[now]+p[now][i]<u[cw[now][i]])
                {
                    f[cw[now][i]]=min(c[now][i],f[now]);
                    e[cw[now][i]]=i;
                    u[cw[now][i]]=u[now]+p[now][i];
                    pre[cw[now][i]]=now;
                    if (vis[cw[now][i]]==0)
                        vis[cw[now][i]]=1,q.push_back(cw[now][i]);
                }
        }
        (*flow)=f[t];
        (*cost)=u[t];
        return (pre[t]!=-1);
    }
    
    void min_cost_max_flow_1(int s,int t,int *flow,int *cost)
    {
        int temp_flow,temp_cost;
        while (bfs_1(s,t,&temp_flow,&temp_cost))
        {
            for (int i=t;i!=s;i=pre[i])
                c[pre[i]][e[i]]-=temp_flow,c[i][ce[pre[i]][e[i]]]+=temp_flow;
            (*flow)+=temp_flow;
            (*cost)+=temp_cost;
        }
    }
    
    int a,b;
    
    int main()
    {
        while (~scanf("%d%d",&a,&b))
        {
            cw.resize(0);
            cw.resize(2);
            ce.resize(0);
            ce.resize(cw.size());
            c.resize(0);
            c.resize(cw.size());
            p.resize(0);
            p.resize(cw.size());
            add_edge_1(0,1,oo_max,a);
            add_edge_1(0,1,oo_max,b);
            int ans_flow=0,ans_cost=0;
            min_cost_max_flow_1(0,1,&ans_flow,&ans_cost);
            printf("%d\n",ans_cost);
        }
    }
    
  • -1
    @ 2017-10-06 16:54:44

    var a, b:longint;
    begin
    readln(a, b);
    writeln(a + b);
    end.

  • -1
    @ 2017-09-20 17:52:40

    #include<stdio.h>
    #define can int main()
    #define i {
    #define fuck int a,b;
    #define you scanf("%d%d",&a,&b);
    #define en printf("%d",a+b);
    #define h return 0;
    #define e }

    can i fuck you en h e

  • -1
    @ 2017-08-25 01:27:03
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int a, b;
        cin >> a >> b;
        cout << a + b << endl;
    }
    
  • -1
    @ 2017-08-25 01:26:33

    #include <iostream>

    using namespace std;

    int main()
    {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
    }

  • -1
    @ 2017-08-23 21:08:36
    #include<bits/stdc++.h>
    using namespace std;
    int f[1000011];
    int gf(int x)
    {
        if (f[x]==x) return x;
        else return f[x]=gf(f[x]);
    }
    int un(int x,int y)
    {
        f[gf(x)]=gf(y);
    }
    int main()
    {
        int a,b;
        for (int i=1;i<=100010;i++) f[i]=i;
        cin>>a>>b;
        for (int i=2;i<=a;i++)un(i-1,i);
        for (int i=a+2;i<=a+b;i++)un(i-1,i);
        un(1,a+b);
        int ans=1;
        for (int i=2;i<=100010;i++) if (gf(i-1)==gf(i)) ans++;
        cout<<ans;
    }
    
  • -1
    @ 2017-08-23 21:08:08

    #发一个并查集的代码
    cpp
    #include<bits/stdc++.h>
    using namespace std;
    int f[1000011];
    int gf(int x)
    {
    if (f[x]==x) return x;
    else return f[x]=gf(f[x]);
    }
    int un(int x,int y)
    {
    f[gf(x)]=gf(y);
    }
    int main()
    {
    int a,b;
    for (int i=1;i<=100010;i++) f[i]=i;
    cin>>a>>b;
    for (int i=2;i<=a;i++)un(i-1,i);
    for (int i=a+2;i<=a+b;i++)un(i-1,i);
    un(1,a+b);
    int ans=1;
    for (int i=2;i<=100010;i++) if (gf(i-1)==gf(i)) ans++;
    cout<<ans;
    }

  • -1
    @ 2017-08-16 18:26:54

    C++,我用个二进制吧。。。
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int main()
    {
    int a,b,s=0,s1=0,i=0,na=0,nb=0;
    cin>>a>>b;
    if(a<=0) na=1,a*=-1;
    while(a!=0)
    {
    if(a%2!=0)
    s+=pow(2,a%2*i);
    a/=2;
    i++;
    }
    i=0;
    if(na==1) s*=-1;
    if(b<=0) nb=1,b*=-1;
    while(b!=0)
    {
    if(b%2!=0)
    s1+=pow(2,b%2*i);
    b/=2;
    i++;
    }
    if(nb==1) s1*=-1;
    cout<<s+s1;;
    return 0;
    }

  • -1
    @ 2017-08-03 18:41:04

    #include<cstdio>
    //调用头文件。
    using namespace std;
    int main()
    {
    int a,b;//定义a,b。
    scanf("%d%d",&a,&b);//通过scanf格式化输入。
    printf("%d",a+b);//直接输出表达式即可
    return 0;
    }

  • -1
    @ 2017-07-24 19:22:06

    import java.io.*;
    import java.util.Scanner;

    public class Main {
    public static void main(String[] args) throws IOException {
    Scanner cin = new Scanner(System.in);
    int a = cin.nextInt();
    int b = cin.nextInt();
    System.out.println(a + b);
    }
    }

  • -1
    @ 2017-07-22 20:54:52

    #inlcude<iostream>
    using namespace std;
    int main()
    {
    int A,B;
    cin>>A>>B;
    cout<<A+B<<endl;
    return 0;
    }

  • -1
    @ 2017-05-14 11:15:00

    #include<stdio.h>
    int main()
    {
    int a,b,c;
    scanf("%d %d",&a,&b);
    c=a+b;
    printf("%d",c);
    return 0;
    }

  • -1
    @ 2017-04-10 16:16:23

    include <iostream>

    include <cstring>

    using namespace std;

    int low_bit (int a) {
    return a & (-a);
    }

    int main () {
    int n = 2, m = 1;
    int ans[m + 1];
    int a[n + 1], c[n + 1], s[n + 1];
    int o = 0;

    memset (c, 0, sizeof(c));

    s[0] = 0;

    for (int i = 1; i <= n; i++) {
    cin >> a[i];
    s[i] = s[i - 1] + a[i];
    c[i] = s[i] - s[i - low_bit(i)];
    }

    for (int i = 1; i <= m; i++) {
    int q = 2;
    {
    int x = 1, y = 2;
    int s1 = 0, s2 = 0, p = x - 1;

    while (p > 0) {
    s1 += c[p];
    p -= low_bit(p);
    }

    p = y;

    while (p > 0) {
    s2 += c[p];
    p -= low_bit(p);
    }

    o++;

    ans[o] = s2 - s1;
    }
    }

    for (int i = 1; i <= o; i++)
    cout << ans[i] << endl;

    return 0;
    }

  • -1
    @ 2017-03-14 17:40:18

    var a,b:longint;
    begin
    readln(a,b);
    writeln(a+b);
    end.

  • -1
    @ 2017-03-12 11:37:25
    #include<iostream>
    using namespace std;
    int Plus(int a, int b)
    {
        return a + b;
    }
    int main()
    {
        int a, b;
        cin >> a >> b;
        cout << Plus(a, b);
        return 0;
    }
    
  • -1
    @ 2017-03-11 17:26:33

    #include <iostream>
    using namespace std;

    int main() {
    int a,b;
    cin>>a>>b;
    cout<<a+b;
    return 0;
    }

  • -1
    @ 2017-03-10 21:09:18

    #include <stdio.h>
    #include <iostream>
    using namespace std;
    int main()
    {
    int a,b,c;
    cin>>a;
    cin>>b;
    c=a+b;
    cout<<c<<endl;
    return 0;
    }

  • -1
    @ 2017-03-05 12:02:25

    main函数自递归和位运算

    #include<bits/stdc++.h>
    int main(int a,int b,int k)
    {
        if (k) scanf("%d%d",&a,&b);
        printf("%d",b==0?a:main(a^b,(a&b)<<1,0));
        exit(0);
    }
    
  • -1
    @ 2017-03-04 16:26:58
    #include<iostream>
    #include<iomanip>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int m,n;
    int main()
    {
        cin>>n>>m;
        cout<<n+m;
        return 0;               
    }
    
  • -1
    @ 2017-02-20 19:47:50

    #include <stdio.h>
    int main()
    {
    int x,y;
    scanf("%d %d",&x,&y);
    printf("%d",x+y);
    return 0;
    }

信息

ID
1000
难度
9
分类
(无)
标签
(无)
递交数
73488
已通过
28184
通过率
38%
被复制
200