zoukankan      html  css  js  c++  java
  • 闭关修炼屯题中,期末考完A

    FJUTOJ

    1279

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <queue>
    #include <cmath>
    #include <map>
    #include <string>
    
    using namespace std;
    const int N=10000+5;
    
    struct node
    {
        char str[10];
        int deep;
    }Node;
    node s,e,now,tmp;
    
    char str[10],ttr[10];
    
    int vis[N]={0};
    int use[10005]={0};
    
    void get_prime()
    {
        ///0 is prime
        int m=sqrt(N+0.5);
        for(int i=2;i<=m;i++)
        {
            if(!vis[i])
            {
                for(int j=i*i;j<=N;j+=i)
                {
                    vis[j]=1;
                }
            }
        }
    }
    
    bool is_prime(char num[])
    {
        int data=0;
        for(int i=0;i<4;i++)
        {
            data=data*10+num[i]-'0';
        }
        if(vis[data]==0)
        {
            vis[data]=1;///去重
            return 1;
        }
        return 0;
    }
    
    bool bfs()
    {
        queue<node>que;
        que.push(s);
        while(!que.empty())
        {
            now=que.front();
            que.pop();
            if(!strcmp(now.str,e.str))
            {
                printf("%d
    ",now.deep);
                return 1;
            }
            for(int i=0;i<4;i++)
            {
                strcpy(tmp.str,now.str);
                for(int j=0;j<=9;j++)
                {
                    if(i==0&&j==0) continue;
                    tmp.str[i]=j+'0';
                    if(is_prime(tmp.str))
                    {
                        tmp.deep=now.deep+1;
                        que.push(tmp);
                    }
                }
            }
        }
        puts("Impossible");
        return 0;
    }
    
    int main()
    {
        int t;
        while(~scanf("%d",&t))
        {
            while(t--)
            {
                memset(vis,0,sizeof(vis));
                get_prime();
                memset(use,0,sizeof(use));
                scanf("%s%s",s.str,e.str);
                s.deep=0;
                bfs();
            }
        }
        return 0;
    }
    View Code

     1332

    太毒了,先按3*3 4*4 5*5 6*6 确定箱子数,在拿1*1 2*2填细节会少一点

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int box[7]={0};
    
    int main()
    {
        while(1)
        {
            box[0]=0;
            for(int i=1;i<=6;i++){
                scanf("%d",&box[i]);
                box[0]|=box[i];
            }
            if(!box[0]){
                break;
            }
            int ans=0;
            ans=(box[3]+3)/4+box[4]+box[5]+box[6];
    
            ///2
            int left=box[4]*5;
            if(box[3]%4==3){
                left++;
            }
            else if(box[3]%4==2){
                left+=3;
            }
            else if(box[3]%4==1){
                left+=5;
            }
    
            if(left<box[2]){
                ans+=(box[2]-left+8)/9;
            }
    
            ///1
            left=36*ans-36*box[6]-25*box[5]-16*box[4]-9*box[3]-4*box[2];
            if(left<box[1]){
                ans+=(box[1]-left+35)/36;
            }
    
            printf("%d
    ",ans);
        }
    
        return 0;
    }
    View Code

     1008

    #include <bits/stdc++.h>
    
    using namespace std;
    
    char str[1005][1005];
    int pos=0,maxLen=0;
    
    int main()
    {
        while(gets(str[pos])){
            maxLen=max(maxLen,(int)strlen(str[pos++]));
        }
    
        //printf("max=%d
    ",maxLen);
        for(int i=0;i<=maxLen+1;i++){
            printf("*");
        }
        puts("");
        int flag=1;
        for(int i=0;i<pos;i++)
        {
            int len=strlen(str[i]);
            int left=maxLen-len;
            int a,b;
            a=b=left/2;
            if(left&1){
                if(flag){
                    a=a;
                    flag=0;
                }
                else{
                    a++;
                    flag=1;
                }
            }
            b=left-a;
            //printf("[%d %d len=%d]
    ",a,b,len);
            printf("*");
            while(a--)printf(" ");
            printf("%s",str[i]);
            while(b--)printf(" ");
            printf("*
    ");
        }
        for(int i=0;i<=maxLen+1;i++){
            printf("*");
        }
        puts("");
        return 0;
    }
    /**
    *    5     *4 5
    *     5    *5 4
    *  Round   *2 3
    *  Round   *2 3
    */
    View Code

     1205

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 1005;
    
    char str[maxn];
    
    int main()
    {
        while(~scanf("%s",str)&&str[0]!='0')
        {
            int num=0;
            int len=strlen(str);
            for(int i=0;i<len;i++){
                num=(num*10+str[i]-'0')%17;
            }
            if(num==0){
                puts("1");
            }
            else{
                puts("0");
            }
        }
    
        return 0;
    }
    View Code

     1955

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        int n,m;
        while(~scanf("%d%d",&n,&m)&&(n||m))
        {
            int s=0;
            for(int i=2;i<=n;i++)
            {
                s=(s+m)%i;
            }
            printf("%d %d %d
    ",n,m,s+1);
        }
    
        return 0;
    }
    View Code

     1299

    #include <cstdio>
    
    int main()
    {
        int t,s,u;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&s,&u);
            puts("1");
        }
    }
    View Code

     1210

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 1005;
    
    char str[maxn];
    
    int main()
    {
        while(~scanf("%s",str)){
            int ans=strlen(str);
            int a=-1,b=-1,c=-1;
            int len=strlen(str);
            for(int i=0;i<len;i++){
                if(str[i]=='a'){
                    a=i;
                    if(b!=-1&&c!=-1){
                        ans=min(ans,a-min(b,c)+1);
                    }
                }
                else if(str[i]=='b'){
                    b=i;
                    if(a!=-1&&c!=-1){
                        ans=min(ans,b-min(a,c)+1);
                    }
                }
                else if(str[i]=='c'){
                    c=i;
                    if(a!=-1&&b!=-1){
                        ans=min(ans,c-min(a,b)+1);
                    }
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code

     1208

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 1005;
    
    int n,m,arr[maxn][maxn],dp[maxn][maxn];
    
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            memset(arr,0,sizeof(arr));
            memset(dp,0,sizeof(dp));
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    scanf("%d",&arr[i][j]);
                }
            }
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    dp[i][j]=max(max(max(dp[i][j-1],dp[i-1][j]),dp[i-1][j]+arr[i][j]),dp[i][j-1]+arr[i][j]);
                }
            }
            printf("%d
    ",dp[n][m]);
        }
    
        return 0;
    }
    View Code

     1202

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 1e5+7;
    
    long long t,n,m,x,y,arr[maxn];
    long long toRight[maxn],toLeft[maxn];
    
    int main()
    {
        scanf("%I64d",&t);
        while(t--)
        {
            toRight[1]=0;
            scanf("%I64d%I64d",&n,&m);
            for(int i=2;i<=n;i++){
                scanf("%I64d",&arr[i]);
                toRight[i]=arr[i]+toRight[i-1];
            }
            for(int i=1;i<=m;i++)
            {
                scanf("%I64d%I64d",&x,&y);
                long long beginPos=(i-1)%n+1;
                long long ans=0;
                if(x<y){
                    if(beginPos<=x){///b x y
                        ans=toRight[y]-toRight[beginPos];
                    }
                    else{///x b y
                        ans=2*toRight[n]-toRight[beginPos]+toRight[y];
                    }
                }
                else{///y x
                    ans=2*toRight[n]-toRight[beginPos]-toRight[y];
                }
                cout<<ans<<endl;
            }
        }
    
        return 0;
    }
    View Code

     2094

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    
    using namespace std;
    const int maxn = 10;
    
    int mp[maxn][maxn];
    char str[5],ttr[5];
    
    struct node
    {
        int x,y,deep;
    }s,e,tmp,now;
    
    int Next[8][2]={-2,1,-2,-1,-1,2,-1,-2,2,1,2,-1,1,2,1,-2};
    
    void bfs()
    {
        queue<node>q;
        q.push(s);
        mp[s.x][s.y]=1;
        while(!q.empty())
        {
            now=q.front();
            q.pop();
            if(now.x==e.x&&now.y==e.y)
            {
                printf("To get from %s to %s takes %d knight moves.
    ",str,ttr,now.deep);
                return ;
            }
            for(int i=0;i<8;i++)
            {
                int xx=now.x+Next[i][0];
                int yy=now.y+Next[i][1];
                if(xx<0||yy<0||xx>7||yy>7||mp[xx][yy]){
                    continue;
                }
                tmp.x=xx;
                tmp.y=yy;
                tmp.deep=now.deep+1;
                q.push(tmp);
            }
        }
    }
    
    int main()
    {
        while(~scanf("%s%s",str,ttr))
        {
            memset(mp,0,sizeof(mp));
            s.x=str[0]-'a';
            s.y=str[1]-'1';
            e.x=ttr[0]-'a';
            e.y=ttr[1]-'1';
            s.deep=0;
            bfs();
        }
        return 0;
    }
    View Code

     1237

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <map>
    
    using namespace std;
    const int maxn = 1e5+7;
    
    char str[maxn];
    string s,t;
    map<string,string>mmp;
    map<string,string>::iterator it;
    
    int main()
    {
        while(gets(str))
        {
            if(str[0]==0){break;}
            for(int i=0;i<strlen(str);i++)
            {
                if(str[i]==' '){
                    str[i]=0;
                    i++;
                    s=str;
                    t=str+i;
                    mmp[t]=s;
                    break;
                }
            }
        }
        while(~scanf("%s",str))
        {
            if(mmp.count(str))
            {
                cout<<mmp.find(str)->second<<endl;
            }
            else{
                cout<<"eh"<<endl;
            }
        }
    
        return 0;
    }
    View Code

    (11)

    2092

    #include <bits/stdc++.h>
    
    using namespace std;
    char mp[105][105];
    int sum,mov[8][2]={-1,-1,-1,0,-1,1,0,1,0,-1,1,1,1,-1,1,0},n,m;
    
    void dfs(int x,int y)
    {
        if(!mp[x][y]||mp[x][y]=='*')
        {
            return ;
        }
        mp[x][y]='*';
        for(int i=0;i<8;i++)
        {
            dfs(x+mov[i][0],y+mov[i][1]);
        }
    }
    
    int main()
    {
        while(~scanf("%d%d",&n,&m)&&n&&m)
        {
            sum=0;
            memset(mp,0,sizeof(mp));
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    cin>>mp[i][j];
                }
            }
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    if(mp[i][j]=='@')
                    {
                        sum++;
                        dfs(i,j);
                    }
                }
            }
            printf("%d
    ",sum);
        }
        return 0;
    }
    View Code

     1446

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <map>
    
    using namespace std;
    const int maxn = 1005;
    
    int n,m,x;
    
    vector<pair<int,int> >E[maxn];
    int inq[maxn],dis[maxn];
    
    void init()
    {
        for(int i=1; i<=n; i++)
        {
            E[i].clear();
        }
    }
    
    int SPFA(int s,int t)
    {
        int now;
        queue<int>q;
        q.push(s);
        dis[s]=0,inq[s]=1;
        while(!q.empty())
        {
            now=q.front();
            q.pop();
            inq[now]=0;
            for(int i=0;i<E[now].size();i++)
            {
                int to=E[now][i].first;
                if(dis[to]>dis[now]+E[now][i].second)
                {
                    dis[to]=dis[now]+E[now][i].second;
                    if(!inq[to]){
                        inq[to]=1;
                        q.push(to);
                    }
                }
            }
        }
        return dis[t];
    }
    
    void show()
    {
        for(int i=1; i<=n; i++)
        {
            for(int j=0; j<E[i].size(); j++)
            {
                printf("[%d %d] ",E[i][j].first,E[i][j].second);
            }
            puts("");
        }
    }
    
    int main()
    {
        int u,v,w,ans;
        while(~scanf("%d%d%d",&n,&m,&x))
        {
            init();
            for(int i=1; i<=m; i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                E[u].push_back(make_pair(v,w));
            }
            //show();
            ans=0;
            for(int i=1; i<=n; i++)
            {
                for(int j=0; j<maxn; j++)
                {
                    inq[j]=0;
                    dis[j]=1e9;
                }
                int To=SPFA(i,x);
                for(int j=0; j<maxn; j++)
                {
                    inq[j]=0;
                    dis[j]=1e9;
                }
                int Back=SPFA(x,i);
                ans=max(To+Back,ans);
            }
            printf("%d
    ",ans);
        }
    
        return 0;
    }
    View Code

    1409

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    
    const int N=100000+5;
    using namespace std;
    
    int vis[N]={0};
    void get_prime()
    {
        int m=sqrt(N+0.5);
        for(int i=2;i<=m;i++)
        {
            if(!vis[i])
            {
                for(int j=i*i;j<=N;j+=i)
                {
                    vis[j]=1;
                }
            }
        }
    }
    int main()
    {
        get_prime();
        int num;
        int cas=1;
        while(~scanf("%d",&num))
        {
            if(num<=0){break;}
            printf("%d: ",cas++);
            if(num==1||num==2)puts("no");
            else if(vis[num])puts("no");
            else puts("yes");
        }
        return 0;
    }
    View Code

     1983

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        char str[105],ret[105]={0};
        scanf("%s",str);
        long long num=(str[0]-'0')*10000+(str[1]-'0')+(str[2]-'0')*1000+(str[3]-'0')*10+(str[4]-'0')*100;
        long long ans=1;
        for(int i=1;i<=5;i++){
            ans=(ans*num)%100000;
        }
        //cout<<ans<<endl;
        int pos=5;
        while(pos--)
        {
            ret[pos]=ans%10+'0';
            ans/=10;
        }
        printf("%s
    ",ret);
        return 0;
    }
    View Code

     1240

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 26;
    
    int t,n;
    char str[10000+7];
    
    typedef struct Trie
    {
        Trie *next[maxn];
        int v;
    }Trie;
    
    Trie *root;
    
    void createTrie(char str[])
    {
        int len=strlen(str);
        Trie *p=root,*q;
        for(int i=0;i<len;i++)
        {
            int id=str[i]-'0';
            if(p->next[id]==NULL)
            {
                q=(Trie*)malloc(sizeof(Trie));
                q->v=1;
                for(int j=0;j<maxn;j++){
                    q->next[j]=NULL;
                }
                p->next[id]=q;
                p=p->next[id];
            }
            else
            {
                p->next[id]->v++;
                p=p->next[id];
            }
        }
        p->v=-1;
    }
    
    int findTrie(char str[])
    {
        int len=strlen(str);
        Trie *p=root;
        for(int i=0;i<len;i++)
        {
            int id=str[i]-'0';
            p=p->next[id];
            if(p==NULL){    ///不存在前缀
                return 0;
            }
            if(p->v==-1){   ///字符集中已有串是此串的前缀
                return -1;
            }
        }
        return -1;          ///前缀
    }
    
    int dealTrie(Trie *T)
    {
        if(T==NULL){
            return 0;
        }
        for(int i=0;i<maxn;i++){
            if(T->next[i]!=NULL){
                dealTrie(T->next[i]);
            }
        }
        free(T);
        return 0;
    }
    
    int main()
    {
        while(~scanf("%d",&t))
        {
            while(t--)
            {
                int flag=0;
                root=(Trie*)malloc(sizeof(Trie));
                memset(root->next,0,sizeof(root->next));
                scanf("%d",&n);
                while(n--)
                {
                    scanf("%s",str);
                    if(findTrie(str)==-1){
                        flag=1;
                    }
                    if(!flag){
                        createTrie(str);
                    }
                }
                if(flag){puts("NO");}
                else{puts("YES");}
                dealTrie(root);
            }
        }
    
        return 0;
    }
    View Code

    1233

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <map>
    
    using namespace std;
    string s,t;
    map<string,string>mmp;
    map<string,string>::iterator it;
    
    char str[3005],ttr[3005];
    
    int main()
    {
        while(gets(str))
        {
            if(!strcmp(str,"START")){continue;}
            if(!strcmp(str,"END")){break;}
            int len=strlen(str);
            for(int i=0;i<len;i++){
                if(str[i]==' '){
                    str[i]='';
                    s=str;
                    t=str+i+1;
                    mmp[t]=s;
                    break;
                }
            }
        }
        while(gets(str))
        {
            if(!strcmp(str,"START")){continue;}
            if(!strcmp(str,"END")){break;}
            int len=strlen(str),pos=0;
            for(int i=0;i<len;i++){
                if(str[i]>='a'&&str[i]<='z')
                {
                    ttr[pos++]=str[i];
                }
                else
                {
                    ttr[pos]=0;
                    if(mmp.count(ttr)){
                        cout<<mmp.find(ttr)->second;
                    }
                    else{
                        cout<<ttr;
                    }
                    printf("%c",str[i]);
                    pos=0;
                }
            }
            puts("");
        }
    
    
    
        return 0;
    }
    View Code

     1821

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 1005;
    
    int main()
    {
        char str[maxn];
        while(~scanf("%s",str))
        {
            int flag=0;
            for(int i=0;i<strlen(str);i++){
                if(str[i]=='.'&&str[i-1]=='9'){
                    puts("GOTO Vasilisa.");
                    flag=1;
                    break;
                }
            }
            if(flag){continue;}
            for(int i=0;i<strlen(str);i++){
                if(str[i+1]=='.'){
                    int num=str[i+2]-'0';
                    if(num>=5){
                        str[i]++;
                    }
                    putchar(str[i]);
                    break;
                }
                putchar(str[i]);
            }
            puts("");
        }
    
    
        return 0;
    }
    View Code

     2357

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 20000+7;
    
    int n,s,arr[maxn];
    
    int main()
    {
        while(~scanf("%d%d",&n,&s))
        {
            for(int i=0;i<n;i++){
                scanf("%d",&arr[i]);
            }
            sort(arr,arr+n);
            int ans=0;
            for(int i=0;i<n;i++){
                ans+=upper_bound(arr+i+1,arr+n,s-arr[i])-arr-i-1;
            }
            printf("%d
    ",ans);
        }
    
        return 0;
    }
    View Code

     1742

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    
    using namespace std;
    const int maxn = 1e6+7;
    
    int a[30],b[15];
    char str[maxn];
    
    int main()
    {
        while(~scanf("%s",str))
        {
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            for(int i=0;i<strlen(str);i++){
                if(str[i]>='0'&&str[i]<='9'){
                    b[str[i]-'0']++;
                }
                else{
                    a[str[i]-'a']++;
                }
            }
            int max_pos=0,flag=1,max_val=0;
            for(int i=0;i<26;i++){
                if(a[i]>max_val){
                    max_val=a[i];
                    max_pos=i;
                }
            }
            for(int i=0;i<10;i++){
                if(b[i]>max_val){
                    max_val=b[i];
                    max_pos=i;
                    flag=2;
                }
            }
            if(flag==1){
                printf("%c %d
    ",max_pos+'a',max_val);
            }
            else{
                printf("%c %d
    ",max_pos+'0',max_val);
            }
        }
    
        return 0;
    }
    View Code

     (20)

    1551

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    
    using namespace std;
    const int maxn = 105;
    
    struct node
    {
        int to,w,next;
    }arr[maxn*maxn*2];
    int first[maxn],sign,n,in[maxn];
    
    void init()
    {
        memset(first,0,sizeof(first));
        memset(in,0,sizeof(in));
        sign=1;
    }
    
    void add_edge(int u,int v,int w)
    {
        arr[sign].w=w;
        arr[sign].to=v;
        arr[sign].next=first[u];
        first[u]=sign++;
    }
    
    void toposort()
    {
        queue<int>q;
        for(int i=1;i<=n;i++){
            if(in[i]==0){
                q.push(i);
            }
        }
        int f=1;
        while(!q.empty()){
            int now=q.front();
            q.pop();
    
            if(f){
                printf("%d",now);
                f=0;
            }
            else{
                printf(" %d",now);
            }
            for(int i=first[now];i;i=arr[i].next){
                in[arr[i].to]--;
                if(in[arr[i].to]==0){
                    q.push(arr[i].to);
                }
            }
        }
        puts("");
    }
    
    int main()
    {
        int u,v,w;
        while(~scanf("%d",&n))
        {
            init();
            for(int i=1;i<=n;i++){
                while(~scanf("%d",&v)&&v){
                    add_edge(i,v,1);
                    in[v]++;
                }
            }
            toposort();
        }
    
        return 0;
    }
    View Code

     1905

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        long long a,b,c;
        while(~scanf("%I64d%I64d%I64d",&a,&b,&c)){
            printf("%I64d
    ",min(min(min(2*(a+b),a+b+c),2*(b+c)),2*(a+c)));
        }
        return 0;
    }
    View Code

     2023  两个等于条件都要写

    #include <bits/stdc++.h>
    
    using namespace std;
    const int maxn = 10005;
    
    bool checkBig(int a,int b,int c,int d)
    {
        if(a>=2*b&&a>=2*c&&a>=2*d)
        {
            return 1;
        }
        return 0;
    }
    
    bool checkSmall(int a,int b,int c,int d)
    {
        if(a*2<=b&&a*2<=c&&a*2<=d)
        {
            return 1;
        }
        return 0;
    }
    
    int main()
    {
        string a,b,c,d;
        int la,lb,lc,ld,pos=0,flag=0;
        bool finds=0;
        getline(cin,a);
        getline(cin,b);
        getline(cin,c);
        getline(cin,d);
        la=a.length()-2;
        lb=b.length()-2;
        lc=c.length()-2;
        ld=d.length()-2;
        //printf("%d %d %d %d
    ",la,lb,lc,ld);
        if(checkBig(la,lb,lc,ld))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=1;
        }
        if(checkSmall(la,lb,lc,ld))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=1;
        }
        ///
        if(checkBig(lb,lc,ld,la))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=2;
        }
        if(checkSmall(lb,lc,ld,la))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=2;
        }
        ///
        if(checkBig(lc,ld,la,lb))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=3;
        }
        if(checkSmall(lc,ld,la,lb))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=3;
        }
        ///
        if(checkBig(ld,la,lb,lc))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=4;
        }
        if(checkSmall(ld,la,lb,lc))
        {
            if(finds)
            {
                puts("C");flag=1;
            }
            finds=1;
            pos=4;
        }
        if(pos&&!flag)
        {
            switch (pos)
            {
            case 1:
                puts("A");
                break;
            case 2:
                puts("B");
                break;
            case 3:
                puts("C");
                break;
            case 4:
                puts("D");
                break;
            }
        }
        else if(!flag){
            puts("C");
        }
    
    
        return 0;
    }
    View Code

     2227

    #include <bits/stdc++.h>
    
    using namespace std;
    typedef long long ll;
    
    int main()
    {
        ll l1,r1,l2,r2,k,ans;
        while(cin>>l1>>r1>>l2>>r2>>k)
        {
            if(l2<l1){
                swap(l1,l2);
                swap(r1,r2);
            }
            if(r1<l2){
                puts("0");
            }
            else{
                if(r2<=r1){
                    ans=r2-l2+1;
                    if(k<=r2&&k>=l2){
                        ans--;
                    }
                }
                else{
                    ans=r1-l2+1;
                    if(k<=r1&&k>=l2){
                        ans--;
                    }
                }
                cout<<ans<<endl;
            }
        }
    
        return 0;
    }
    View Code

     *2313

    #include <bits/stdc++.h>
    
    using namespace std;
    const int maxn = 1005;
    int vis[maxn];
    
    int main()
    {
        int t,n,m,value;
        while(~scanf("%d",&t))
        {
            while(t--)
            {
                memset(vis,0,sizeof(vis));
                scanf("%d%d",&n,&m);
                for(int i=1;i<=n;i++){
                    int ret=0;
                    for(int j=1;j<=m;j++){
                        scanf("%d",&value);
                        ret=ret*2+value;
                    }
                    vis[i]=ret;
                }
                int ans=0;
                for(int i=1;i<=n;i++){
                    for(int j=i+1;j<=n;j++){
                        if(vis[i]&vis[j]){
                            ans++;
                        }
                    }
                }
                printf("%d
    ",ans);
            }
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    理解 Java Thread ContextClassLoader(线程上下文类加载器)
    StringUtils工具类常用方法汇总2(截取、去除空白、包含、查询索引)
    StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)
    数组去重(2)
    数组去重(1)
    查找数组中的最大值(最小值)及相对应的下标
    javascript 隐式转换 == 之 [ ]==![ ] 结果为true,而{ }==!{ } 结果为false
    圣杯布局(2)>>>>>
    圣杯布局(1)>>>>>
    二分查找里的upper bound与lower bound的实现与分析
  • 原文地址:https://www.cnblogs.com/Q1143316492/p/6941264.html
Copyright © 2011-2022 走看看