zoukankan      html  css  js  c++  java
  • 练习备份1

    #include<vector>
    #include<cstdio>
    #include<iostream>
    using namespace std;
    vector<vector<int> >name;
    int main(void)
    {
        int n;
        cin >> n;
        for(int i=0;i<n;i++)
        {
            int k , data;
            cin >> k;
            vector<int>temp;
            for(int j=0;j<k;j++)
            {
                cin >> data;
                temp.push_back(data);
            }
            name.push_back(temp);
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<name[i].size();j++)
            {
                printf("%d  ",name[i][j]);
            }
            printf("
    ");
        }
        return 0;
    } 
    
    #include<cstdio>
    #include<iostream>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int>vi[100];
        for(int i=0;i<5;i++) vi[0].push_back(i);
        vector<int>::iterator it;
        for(it=vi[0].begin();it!=vi[0].end();it++)
        {
            printf("%d ",*it);
        }
        return 0;
    }
    
    #include<vector>
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int main(void)
    {
        vector<int>vi;
        for(int i=1;i<=3;i++) vi.push_back(i);
        vi.pop_back();
        for(int i=0;i<vi.size();i++) printf("%d ",vi[i]); 
        return 0;
    }
    
    #include<stdio.h>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int>vi;
        for(int i=0;i<3;i++) vi.push_back(i);
        printf("%d",vi.size());
        return 0;
     } 
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int>vi;
        for(int i=1;i<=3;i++) vi.push_back(i);
        vi.clear();
        printf("%d",vi.size()); 
        return 0;
    }
    
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int>vi;
        for(int i=1;i<=5;i++) vi.push_back(i);
        vi.insert(vi.begin()+2,-1);
        for(int i=0;i<vi.size();i++) printf("%d ",vi[i]);
        printf("
    ");
        for(vector<int>::iterator it=vi.begin();it!=vi.end();it++) printf("%d ",*(it));
        printf("
    ");
        
        return 0;
    }
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int> vi;
        for(int i=5;i<=9;i++) vi.push_back(i);
        vi.erase(vi.begin()+3);
        for(vector<int>::iterator it=vi.begin();it!=vi.end();it++) printf("%d ",*(it));
        return 0;
    }
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    int main(void)
    {
        vector<int> vi;
        for(int i=1;i<=10;i++) vi.push_back(i);
        vi.erase(vi.begin()+5,vi.end());
        for(int i=0;i<vi.size();i++) printf("%d ",vi[i]);
        return 0;
    }
    
    #include<cstdio>
    #include<set>
    using namespace std;
    int main(void)
    {
        set<int> st;
        st.insert(3);
        st.insert(5);
        st.insert(2);
        st.insert(3);
        for(set<int>::iterator it=st.begin();it!=st.end();it++) printf("%d ",*it);
        return 0;
    }
    
    #include<cstdio>
    #include<set>
    using namespace std;
    int main(void)
    {
        set<int>st;
        for(int i=1;i<=10;i++) st.insert(i);
        set<int>::iterator it=st.find(3);
        st.erase(it);
        for(set<int>::iterator it=st.begin();it!=st.end();it++) printf("%d ",*it);
        return 0;
    }
    
    #include<set>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        set<int>st;
        st.insert(100);
        st.insert(200);
        st.insert(100);
        st.insert(300);
        st.erase(st.find(100));
        for(set<int>::iterator it=st.begin();it!=st.end();it++) printf("%d ",*it);
        return 0;
    }
    
    #include<cstdio>
    #include<set>
    using namespace std;
    int main(void)
    {
        set<int>st;
        
        for(int i=1;i<=100;i++) st.insert(i);
        set<int>::iterator it=st.find(90);
        st.erase(st.begin(),it);
        for(set<int>::iterator it=st.begin();it!=st.end();it++) printf("%d ",*it);
        
        return 0;
    }
    
    #include<cstdio>
    #include<set>
    using namespace std;
    int main(void)
    {
        set<int>st;
        st.insert(100);
        st.insert(200);
        st.insert(300);
        st.insert(400);
        printf("%d",st.size());
        return 0;
    }
    
    #include<set>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        set<int>st;
        st.insert(1); st.insert(3);
        st.clear();
        printf("%d",st.size());
        return 0;
    }
    
    #include<unordered_set>
    #include<cstdio>
    #include<iostream>
    using namespace std;
    int main(void)
    {
        unordered_set<int> st;
        st.insert(100);
        st.insert(2);
        st.insert(399);
        for(unordered_set<int>::iterator it=st.begin();it!=st.end();it++) printf("%d",*it);    
    } 
    
    #include<cstdio>
    #include<set>
    using namespace std;
    int main(void)
    {
        multiset<int>st;
        st.insert(100);
        st.insert(200);
        st.insert(100);
        for(multiset<int>::iterator it=st.begin();it!=st.end();it++) printf("%d ",*it);
        
        return 0;
    }
    
    #include<iostream>
    #include<set>
    #include<map>
    using namespace std;
    int main(void)
    {
        map<string,int>mp1;
        map<set<int>,int>mp2;
        map<int,set<int> >mp3;
        map<char,int>mp4;
        mp4['a']=1;
        mp4['b']=2;
        mp4['c']=3;
        mp4['d']=4;
        //printf("%d %d",mp4['a'],mp4['b']);
        for(map<char,int>::iterator it=mp4.begin();it!=mp4.end();it++) printf("%c %d
    ",it->first,it->second);
        return 0;
    }
    
    #include<map>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        map<char ,int >mp;
        mp['a']=1;
        mp['b']=2;
        mp['c']=3;
        mp['d']=4;
        //printf("%d %d",mp4['a'],mp4['b']);
        for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++) printf("%c %d
    ",it->first,it->second);
        return 0;
    }
    
    #include<map>
    #include<cstdio>
    #include<string>
    #include<iostream>
    using namespace std;
    int main(void)
    {
        map<int,string>mp;
        mp[0]="hello";
        mp[4]="world";
        map<int,string>::iterator it=mp.find(4);
        printf("%d %s",it->first,(it->second).c_str());    
        return 0;
    }
    
    #include<cstdio>
    #include<map>
    using namespace std;
    int main(void)
    {
        map<char,int>mp;
        mp['a']=1;
        mp['b']=2;
        mp['c']=3;
        map<char,int>::iterator it=mp.find('b');
        mp.erase(it);
        for(map<char,int>::iterator t=mp.begin();t!=mp.end();t++) printf("%c %d
    ",t->first,t->second);
        
        return 0;    
    }
    
    #include<cstdio>
    #include<map>
    using namespace std;
    int main(void)
    {
        map<char,int>mp;
        mp['a']=1;
        mp['b']=2;
        mp['c']=3;
        map<char,int>::iterator it=mp.find('b');
        mp.erase(it,mp.end());
        for(map<char,int>::iterator t=mp.begin();t!=mp.end();t++) printf("%c %d
    ",t->first,t->second);
        
        return 0;
    }
    
    
    #include<cstdio>
    #include<map>
    using namespace std;
    int main(void)
    {
        map<char,int>mp;
        mp['a']=1;
        mp['b']=2;
        mp['c']=3;
        map<char,int>::iterator it=mp.find('d');
        //printf("%c %d
    ",it->first,it->second);
        if(it==mp.end()) printf("don.t have.
    ");
        //mp.erase(it,mp.end());
        for(map<char,int>::iterator t=mp.begin();t!=mp.end();t++) printf("%c %d
    ",t->first,t->second);
        
        return 0;
    }
    
    #include<map>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        multimap<char,int>mp;
        
        return 0;
    }
    
    #include<cstdio>
    #include<queue>
    using namespace std;
    int main(void)
    {
        priority_queue<int>q;
        q.push(1);
        q.push(3);
        q.push(2);
        while(!q.empty())
        {
            int data=q.top();
            printf("%d ",data);
            q.pop();
        }
        return 0;
    }
    
    #include<cstdio>
    #include<queue>
    using namespace std;
    int main(void)
    {
        priority_queue<int,vector<int>,less<int> >q1;
        q1.push(1); q1.push(2); q1.push(5); q1.push(2);
        priority_queue<int,vector<int>,greater<int> >q2;
        q2.push(1); q2.push(2); q2.push(5); q2.push(2);
        while(!q1.empty())
        {
            int data = q1.top(); q1.pop();
            printf("%d ",data);
        }
        printf("
    ");
        while(!q2.empty())
        {
            int data = q2.top();q2.pop();
            printf("%d ",data);
        }
        return 0;    
    } 
    
    #include<queue>
    #include<string>
    #include<cstdio>
    using namespace std;
    struct fruit{
        string name;
        int price;
        friend bool operator<(const fruit &f1,const fruit &f2)
        {
            return f1.price<f2.price;
        }
    }f1,f2,f3;
    int main(void)
    {
        priority_queue<fruit>q;
        f1.name="桃子"; f1.price=3;
        f2.name="梨子"; f2.price=4;
        f3.name="苹果"; f3.price=1;
        q.push(f1); q.push(f2); q.push(f3);
        while(!q.empty())
        {
            fruit temp = q.top(); q.pop();
            printf("%s %d
    ",temp.name.c_str(),temp.price);    
        } 
        return 0;
    }
    
    #include<cstdio>
    #include<string>
    #include<time.h>
    #include<queue>
    using namespace std;
    struct fruit{
        string name;
        int price;
    }f1,f2,f3;
    struct cmp{
        bool operator()(const fruit &f1,const fruit &f2)
        {
            return f1.price<f2.price;
        }
    };
    int main(void)
    {
        int a=clock();
        priority_queue<fruit,vector<fruit>,cmp>q;
        f1.name="桃子"; f1.price=3;
        f2.name="梨子"; f2.price=4;
        f3.name="苹果"; f3.price=1;
        q.push(f1); q.push(f2); q.push(f3);
        while(!q.empty())
        {
            fruit temp = q.top(); q.pop();
            printf("%s %d
    ",temp.name.c_str(),temp.price);    
        } 
        int b=clock();
        printf("%dms.",b-a);
        return 0;
    }
    
    #include<string>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        string str="abcd";
        for(int i=0;i<str.length();i++) printf("%c",str[i]);
        printf("
    %s",str.c_str());
        printf("
    ");
        for(string::iterator it=str.begin();it!=str.end();it++) printf("%c",*it);
        return 0;
    }
    
    #include<cstdio>
    #include<string>
    using namespace std;
    int main(void)
    {
        string str="abc",str2="def";
        //str.insert(3,str2);
        str.insert(str.end(),str2.begin(),str2.end());
        printf("%s",str.c_str());
        
        return 0;    
    } 
    
    #include<string> 
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        string str="abcdefghijklmn";
        string str1=str.substr(0,5);
        string str2=str.substr(2,5);
        printf("%s
    %s
    ",str1.c_str(),str2.c_str());
        
        return 0;
    }
    
    #include<string>
    #include<cstdio>
    using namespace std;
    int main(void)
    {
        if(string::npos == -1) printf("string::npos=%d
    ",string::npos);
        if(string::npos == (unsigned int)(4294967295))printf("string::npos=%u
    ",string::npos);
        return 0;
    }
    
    #include<cstdio>
    #include<string>
    #include<utility>
    using namespace std;
    int main(void)
    {
        pair<string,int>p[3];
        p[0].first="hello"; p[0].second=1;
        p[1]=make_pair("world",2);
        p[2]=pair<string,int>("hhhh",3);
        for(int i=0;i<3;i++)
        {
            printf("%s %d
    ",p[i].first.c_str(),p[i].second);
        }
        return 0;    
    }
    
    #include<utility>
    #include<map>
    #include<string>
    using namespace std;
    int main(void)
    {
        map<string,int>mp;
        mp.insert(make_pair("hello",1));
        mp.insert(pair<string,int>("world",2));
        for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++) printf("%s %d
    ",it->first.c_str(),it->second);
        return 0;    
    } 
    
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int main(void)
    {
        int a[]={1,2,3,4,5};
        do{
            printf("%d %d %d %d %d
    ",a[0],a[1],a[2],a[3],a[4]);
        }while(next_permutation(a,a+5));
        fill(a,a+5,1);
        printf("
    
    
    "); 
        do{
            printf("%d %d %d %d %d
    ",a[0],a[1],a[2],a[3],a[4]);
        }while(next_permutation(a,a+5));
        return 0;
    }
    
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    const int MAXV = 1000;
    const int INF = 1000000000;
    const int Inf = 0x3fffffff; 
    int n,G[MAXV][MAXV];
    bool vis[MAXV]={false};
    void DFS(int u,int depth)
    {
        vis[u]=true;
        for(int v=0;v<n;v++)
        {
            if(!vis[v] && G[u][v]!=INT) DFS(v,depth+1);
        }
    }
    void DFSTrave()
    {
        for(int u=0;u<n;u++)
        {
            if(!vis[u]) DFS(u,1);
        }
    }
    int main(void)
    {
        //printf("%d
    ",INF);
        //printf("%d
    ",Inf);
        
        return 0;
    }
    
    #include<cstdio>
    #include<vector>
    using namespace std;
    const int MAXV = 1000;
    const int INF = 0x3fffffff;
    vector<int>Adj[MAXV];
    bool vis[MAXV]={false};
    void DFS(int u,int depth)
    {
        vis[u]=true;
        for(int i=0;i<Adj[u].size();i++)
        {
            int v=Adj[u][i];
            if(!vis[v]) DFS(v,depth+1); 
        }
    }
    void DFSTrave()
    {
        for(int v=0;v<n;v++)
        {
            if(!vis[u]) DFS(u,1);
        }
    }
    int main(void)
    {
        return 0;
    }
    
    #include<vector>
    #include<set>
    #include<map>
    #include<cstdio>
    #include<iostream>
    #include<string>
    #include<queue>
    #include<cstring>
    using namespace std;
    const int MAXV = 1000;
    
    struct Gang{
        string name;
        int numberOfPerson;
        Gang(string _name,int _numberOfPerson)
        {
            name=_name;
            numberOfPerson=_numberOfPerson;
        }
        friend bool operator<(const Gang &g1,const Gang &g2)
        {
            return g1.name<g2.name;
        }
    };
    queue<Gang>ans;
    
    
    int m,k,n,cnt;
    map<string,int>NameToInt;
    map<int,string>IntToName;
    map<string,int>Gang;
    int d[MAXV]={0},vis[MAXV]={0};
    int G[MAXV][MAXV]={0}; 
    void DFS(int u,int &boss,int &number,int &sumValue)
    {
        vis[u]=true;
        number++;
        if(d[u]>d[boss]) boss=u;
        for(int v=0;v<n;v++)
        {
            if(G[u][v]!=0)
            {
                sumValue+=G[u][v];
                G[u][v]=G[v][u]=0;
                if(vis[v]==0) DFS(v,boss,number,sumValue); 
            }
        }
    }
    void DFSTrave()
    {
        for(int u=0;u<n;u++)
            if(!vis[u])
            {
                int boss=u,number=0,sumValue=0;
                DFS(u,boss,number,sumValue);
                printf("test boss = %s number = %d sumValue = %d
    ",IntToName[boss].c_str(),number,sumValue);
                if(number>2 && sumValue>k) Gang[IntToName[boss]]=number;
            }
    }
    int main(void)
    {
        cin>>m>>k;
        for(int i=0;i<m;i++)
        {
            string person1,person2;
            int w;
            cin >> person1 >> person2 >> w;
            if(NameToInt.find(person1)==NameToInt.end())
            {
                NameToInt[person1]=n;
                IntToName[n]=person1;
                n++;
            }
            if(NameToInt.find(person2)==NameToInt.end())
            {
                NameToInt[person2]=n;
                IntToName[n]=person2;
                n++;
            }
            //设置点权值 
            int u=NameToInt[person1],v=NameToInt[person2];
            d[u]+=w;
            d[v]+=w;
            //设置边权值 
            G[u][v]+=w;
            G[v][u]+=w; 
        }
        printf("
    
    ");
        for(map<string,int>::iterator it=NameToInt.begin();it!=NameToInt.end();it++) printf("%s %d   ",it->first.c_str(),it->second); 
        printf("
    ");
        for(map<int,string>::iterator it=IntToName.begin();it!=IntToName.end();it++) printf("%d %s   ",it->first,it->second.c_str());
        printf("
    ");
        for(int i=0;i<n;i++) printf("%d     ",d[i]);
        printf("
    ");
        DFSTrave();
            
        while(!ans.empty())
        {
            Gang temp=ans.front(); ans.pop();
            printf("%s %d
    ",temp.name.c_str(),temp.numberOfPerson);    
        } 
        *
        printf("sum = %d
    ",Gang.size());
        for(map<string,int>::iterator it=Gang.begin();it!=Gang.end();it++) printf("%s %d
    ",it->first.c_str(),it->second);
        return 0;
    
    8 59
    AAA BBB 10
    BBB AAA 20
    AAA CCC 40
    DDD EEE 5
    EEE DDD 70
    FFF GGG 30
    GGG HHH 20
    HHH FFF 10
    
    } 
    
    #include<iostream>
    #include<string>
    #include<map>
    using namespace std;
    const int maxn = 2010;
    const int INF = 0xFFFFFFF;
    map<string,int>stringToInt;
    map<int,string>intToString;
    map<string,int>Gang;
    int G[maxn][maxn]={0},weight[maxn]={0};
    int n,k,numPerson=0;
    bool vis[maxn]={false};
    void DFS(int u,int &head,int &numMember,int &totalValue)
    {
        vis[u]=true;
        numMember++;
        if(weight[head]<weight[u]) head=u;
        for(int v=0;v<numPerson;v++)
        {
            if(G[u][v])
            {
                totalValue+=G[u][v];
                G[u][v]=G[v][u]=0;
                if(vis[v]==false) DFS(v,head,numMember,totalValue);
            }
        }
    }
    void DFSTrave()
    {
        for(int u=0;u<numPerson;u++)
        {
            if(vis[u]==false)
            {
                int head=u,numMember=0,totalValue=0;
                DFS(u,head,numMember,totalValue);
                if(numMember>2 && totalValue>k) Gang[intToString[head]]=numMember;
            }
        }
    }
    int change(string str)
    {
        if(stringToInt.find(str)!=stringToInt.end()) return stringToInt[str];
        else 
        {
            stringToInt[str]=numPerson;
            intToString[numPerson]=str;
        }
        return numPerson++;
    }
    int main(void)
    {
        int w;
        string str1,str2;
        cin >> n >> k;
        for(int i=0;i<n;i++)
        {
            cin >> str1 >> str2 >> w;
            int id1=change(str1);
            int id2=change(str2);
            weight[id1]+=w;
            weight[id2]+=w;
            G[id1][id2]+=w;
            G[id2][id1]+=w;
        }    
        DFSTrave();
        printf("%d
    ",Gang.size());
        for(map<string,int>::iterator it=Gang.begin();it!=Gang.end();it++) printf("%s %d
    ",it->first.c_str(),it->second);
        return 0;
    }
    
    
    int n,G[maxn][maxn];
    bool inq[maxn]={false}; 
    void BFS(int u)
    {
        queue<int>q;
        q.push(u);
        inq[u]=true;
        while(!q.empty())
        {
            u=q.front(); q.pop();
            for(int v=0;v<n;v++)
            {
                if(inq[v]==false && G[u][v]!=INF)
                {
                    q.push(v);
                    inq[v]=true;
                }
            }        
        }    
    } 
    void BFSTrave()
    {
        for(int u=0;u<n;u++)
        {
            if(inq[u]==false) BFS(q);    
        }    
    } 
    
    
    vector<int>Adj[maxn];
    bool vis[maxn];
    int n;
    void BFS(int u)
    {
        queue<int>q;
        q.push(u);
        vis[u]=true;
        while(!q.empty())
        {
            u=q.front(); q.pop();
            for(int i=0;i<Adj[u].size();i++)
            {
                int v=Adj[u][i];
                if(vis[v]==false)
                {
                    q.push(v);
                    vis[v]=true;
                }
            }
        }
        
    }
    void BFSTrave()
    {
        for(int u=0;u<n;u++)
        if(vis[u]==false) BFS(u);
    }
    
    
    
    #include<vector>
    #include<cstdio>
    #include<cstring> 
    #include<iostream>
    using namespace std;
    const int maxn = 1010;
    int n,m,L,vis[maxn]={false};
    vector<int>Adj[maxn];
    struct Pos
    {
        int v;
        int layer;
        Pos(int _v,int _layer)
        { 
            v=_v,layer=_layer;
        }
    };
    void BFS(int u,int &cnt)
    {
        queue<Pos>q;
        q.push(Pos(u,0));
        vis[u]=true;
        while(!q.empty())
        {
            Pos pos=q.front(); q.pop();
            int u=pos.v,layer=pos.layer;
            for(int i=0;i<Adj[u].size();i++)
            {
                int v=Adj[u][i];
                if(!vis[v] && layer+1<=L)
                {
                    //vis[v]=true;
                    //q.push(Pos(v,layer+1));
                    //cnt++;
                    vis[v]=true;
                    cnt++;
                    q.push(Pos(v,layer+1));
                }
            }
        }
    }
    int main(void)
    {
        cin>>n>>L;
        for(int i=1;i<=n;i++)
        {
            int num,v;
            cin>>num;
            for(int j=0;j<num;j++) 
            {
                cin>>v;
                Adj[i].push_back(v);    
            }    
        }
        cin >> m;
        for(int i=0;i<m;i++)
        {
            int s;
            cin>>s;
            memset(vis,0,sizeof(vis));
            int cnt=0;
            BFS(s+1,cnt);
            printf("%d
    ",cnt);
        }
        return 0;
    }
    测试的数据 
    7 3
    3 2 3 4
    0
    2 5 6
    2 3 1
    2 3 4
    1 4
    1 5
    2 2 6
    
    #include<queue>
    #include<vector>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    const int MAXV=1000;
    struct Node{
        int id,layer;
    };
    vector<Node>Adj[MAXV];
    bool vis[MAXV]={false};
    int BFS(int s,int L)
    {
        int numForward=0;
        queue<Node>q;
        Node start;
        start.id=s;
        start.layer=0;
        q.push(start);
        vis[s]=true;
        while(!q.empty())
        {
            Node topNode=q.front();
            q.pop();
            int u=topNode.id;
            for(int i=0;i<Adj[u].size();i++)
            {
                Node next=Adj[u][i];
                next.layer=topNode.layer+1;
                if(!vis[next.id] && next.layer<=L)
                {
                    q.push(next);
                    vis[next.id]=true;
                    numForward++;    
                } 
            }
        }
        return numForward;
    }
    int main(void)
    {
        Node user;
        int n,L,numFollow,idFollow;
        scanf("%d%d",&n,&L);
        for(int i=1;i<=n;i++)
        {
            user.id=i;
            scanf("%d",&numFollow);
            for(int j=0;j<numFollow;j++)
            {
                scanf("%d",&idFollow);
                Adj[idFollow].push_back(user);    
            }    
        } 
        int numQuery,s;
        scanf("%d",&numQuery);
        for(int i=0;i<numQuery;i++)
        {
            memset(vis,0,sizeof(vis));
            scanf("%d",&s);
            int numForward=BFS(s,L);
            printf("%d
    ",numForward);
        }
        return 0;
    } 
  • 相关阅读:
    POJ 3630 Phone List/POJ 1056 【字典树】
    HDU 1074 Doing Homework【状态压缩DP】
    POJ 1077 Eight【八数码问题】
    状态压缩 POJ 1185 炮兵阵地【状态压缩DP】
    POJ 1806 Manhattan 2025
    POJ 3667 Hotel【经典的线段树】
    状态压缩 POJ 3254 Corn Fields【dp 状态压缩】
    ZOJ 3468 Dice War【PD求概率】
    POJ 2479 Maximum sum【求两个不重叠的连续子串的最大和】
    POJ 3735 Training little cats【矩阵的快速求幂】
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8824672.html
Copyright © 2011-2022 走看看