码迷,mamicode.com
首页 > 其他好文 > 详细

ccf

时间:2017-11-25 20:43:49      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:tail   header   blog   generate   除法   first   false   detail   ide   

 

ccf201709

0901打酱油(100分)

技术分享图片
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        
        int money=scan.nextInt();
        scan.close();
        int num_buy=0;
        if (money%50==0)
        {
            num_buy=money/50*7;
        }
        else {
            num_buy=money%50/30+money%50/10+money/50*7;
        }
        System.out.println(num_buy);

    }

}
View Code

 

0902公共钥匙盒(100分)

技术分享图片
import java.util.Arrays;
import java.util.Scanner;

public class Main_02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int k = scan.nextInt();

        int[] key = new int[n];
        for (int i = 0; i < n; i++) {
            key[i] = i + 1;
        }

        int[][] tea_use = new int[k][4];
        for (int i = 0; i < k; i++) {
            tea_use[i][0] = scan.nextInt();
            tea_use[i][1] = scan.nextInt();
            tea_use[i][2] = scan.nextInt();
            tea_use[i][3] = tea_use[i][1] + tea_use[i][2];
        }

        int time = 0;
        int max = 0;
        for (int i = 0; i < k; i++) {
            if (tea_use[i][3] > max) {
                max = tea_use[i][3];
            }
        }

        int[] ret = new int[k];
        while (time <= max) {
            for (int i = 0; i < k; i++) {
                ret[i] = 0;
            }
            int m = 0;
            for (int i = 0; i < k; i++) {
                if (tea_use[i][3] == time) {
                    ret[m++] = tea_use[i][0];
                }
            }
            Arrays.sort(ret);
            for (int i = 0; i < k; i++) {
                if (ret[i] != 0) {
                    for (int j = 0; j < n; j++) {
                        if (key[j] == 0) {
                            key[j] = ret[i];
                            ret[i] = 0;
                            break;
                        }
                    }
                }
            }

            for (int i = 0; i < k; i++) {
                if (tea_use[i][1] == time) {
                    for (int j = 0; j < n; j++) {
                        if (key[j] == tea_use[i][0]) {
                            key[j] = 0;
                        }
                    }
                }
            }
            time++;
        }

        for (int i = 0; i < n; i++) {
            System.out.print(key[i] + " ");
        }

    }

}
View Code

 

0904通信网络(100分)

技术分享图片
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;

public class Main_04 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        List[] send = new ArrayList[n + 1];
        List[] receive = new ArrayList[n + 1];
        for (int i = 0; i < n + 1; i++) {
            send[i] = new ArrayList();
            receive[i] = new ArrayList();
        }

        for (int j = 0; j < m; j++) {
            int s = scan.nextInt();
            int t = scan.nextInt();
            send[s].add(t);
            receive[t].add(s);
        }

        boolean all[][] = new boolean[n + 1][n + 1];
        for (int i = 0; i < n + 1; i++) {
            all[i][i] = true;
        }

        Queue q = new LinkedList();
        boolean[] flags;
        for (int i = 1; i < n + 1; i++) {
            q.add(i);
            flags = new boolean[n + 1];
            while (!q.isEmpty()) {
                int temp = (int) q.poll();
                if (!flags[temp]) {
                    for (int j = 0; j < send[temp].size(); j++) {
                        int next = (int) send[temp].get(j);
                        q.add(next);
                    }
                    flags[temp] = true;
                    all[i][temp] = true;
                }
            }
        }

        for (int i = 1; i < n + 1; i++) {
            q.add(i);
            flags = new boolean[n + 1];
            while (!q.isEmpty()) {
                int temp = (int) q.poll();
                if (!flags[temp]) {
                    for (int j = 0; j < receive[temp].size(); j++) {
                        int next = (int) receive[temp].get(j);
                        q.add(next);
                    }
                    flags[temp] = true;
                    all[i][temp] = true;
                }
            }
        }
        int num = 0;
        for (int i = 1; i < n + 1; i++) {
            boolean knowAll = true;
            for (int j = 1; j < n + 1; j++) {
                if (!all[i][j]) {
                    knowAll = false;
                    break;
                }
            }
            if (knowAll) {
                num++;
            }
        }

        System.out.println(num);

    }

}
View Code

 

0905除法(30分)

技术分享图片
import java.util.Scanner;

public class Main_05 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();

        int input1[] = new int[n + 1];
        for (int i = 1; i < n + 1; i++) {
            input1[i] = scan.nextInt();
        }
        int result[] = new int[m];
        int k = 0;
        for (int i = 0; i < m; i++) {
            int opt = scan.nextInt();
            int l = scan.nextInt();
            int r = scan.nextInt();
            if (opt == 1) {
                int v = scan.nextInt();
                for (int j = l; j < r + 1; j++) {
                    if (input1[j] % v == 0) {
                        input1[j] /= v;
                    }
                }
            }
            if (opt == 2) {
                int sum = 0;
                for (int j = l; j < r + 1; j++) {
                    sum += input1[j];
                }
                System.out.println(sum);
            }

        }
    }

}
View Code

 

 

ccf201703

0301分蛋糕(100分)

技术分享图片
package test_201703;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int k=scan.nextInt();
        int weights[]=new int[n];
        for(int i=0;i<n;i++) {
            weights[i]=scan.nextInt();
        }
        int people=0;
        int sum=0;
        for(int i=0;i<n;i++) {
            sum+=weights[i];
            if(sum>=k||i==n-1) {
                people++;
                sum=0;
            }
        }
        System.out.println(people);
    }
}
View Code

 

0302学生排队(100分)

技术分享图片
package test_201703;

import java.util.Scanner;

public class Main_02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        int opt_num=scan.nextInt();
        
        int student[]=new int[n+1];
        int pos[]=new int[n+1];
        for(int i=1;i<n+1;i++) {
            student[i]=i;
            pos[i]=i;
        }
        
        for(int i=0;i<opt_num;i++) {
            int stu=scan.nextInt();
            int dis=scan.nextInt();
            //向后移
            if(dis>0) {
                int temp=student[pos[stu]];
                int j=0;
                for(j=pos[stu];j<pos[stu]+dis;j++) {
                    student[j]=student[j+1];
                    pos[student[j+1]]-=1;
                }
                pos[stu]+=dis;
                student[j]=temp;
            }
            //向前移
            else {
                int temp=student[pos[stu]];
                int j=0;
                for(j=pos[stu];j>pos[stu]+dis;j--) {
                    student[j]=student[j-1];
                    pos[student[j-1]]+=1;
                }
                pos[stu]+=dis;
                student[j]=temp;
                
            }
        }    
        
        for(int i=1;i<n+1;i++) {
            System.out.print(student[i]+" ");
        }
        }
        
        
    }
View Code

 

 

 

ccf201612

1201中间数(100分)

技术分享图片
package ccf_201612;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        List l=new ArrayList();
        for(int i=0;i<n;i++) {
            l.add(s.nextInt());
        }
        Collections.sort(l);
        
        if(n==1) {
            System.out.println(l.get(0));
            return;
        }
        
        if(l.size()%2==0) {
            int mid=(int) l.size()/2-1;
            int mid_num=(int) l.get(mid);
            int num=0;
            for(int j=0;j<l.size();j++) {
                if((int)l.get(j)==mid_num)
                    num++;
            }
            if(num%2==0) {
                System.out.println(l.get(mid));
            }
            else
                System.out.println(-1);
        }
        
        if(l.size()%2==1) {
            int mid=(int) (l.size()+1)/2-1;
            int mid_num=(int) l.get(mid);
            int num=0;
            for(int j=0;j<l.size();j++) {
                if((int)l.get(j)==mid_num)
                    num++;
            }
            if(num%2==1) {
                System.out.println(l.get(mid));
            }
            else
                System.out.println(-1);
        }
        
    }

}
View Code

 

1202工资计算(100分)

技术分享图片
package ccf_201612;

import java.util.Scanner;

public class Main_02 {

    public static int algoth(int all) {
        int after=0;
        if(all<=3500) {
            after=all;
            return after;
        }
        all-=3500;
        if(all<=1500) {
            after= (int) (all*0.97);
        }
        if(1500<all&&all<=4500) {
            after=(int) (all-(all-1500)*0.1-1500*0.03);
        }
        if(4500<all&&all<=9000) {
            after=(int) (all-(all-4500)*0.2-3000*0.1-1500*0.03);
        }
        if(9000<all&&all<=35000) {
            after=(int) (all-(all-9000)*0.25-4500*0.2-3000*0.1-1500*0.03);
        }
        if(35000<all&&all<=55000) {
            after=(int) (all-(all-35000)*0.3-26000*0.25-4500*0.2-3000*0.1-1500*0.03);
        }
        if(55000<all&&all<=80000) {
            after=(int) (all-(all-55000)*0.35-20000*0.3-26000*0.25-4500*0.2-3000*0.1-1500*0.03);
        }
        if(all>80000) {
            after=(int) (all-(all-80000)*0.45-25000*0.35-20000*0.3-26000*0.25-4500*0.2-3000*0.1-1500*0.03);
        }
        return after+3500;
        
    }
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s=new Scanner(System.in);
        int money=s.nextInt();
        
        int after[]=new int[100001];
        for(int i=0;i<100001;i++) {
            after[i]=0;
        }
        
        for(int i=1;i<=100000;i++) {
            
            int aft=algoth(i);
            
            if(i%100==0) {
                after[aft]=i;
            }
            
        }
        
        System.out.println(after[money]);
        
        
    }

}
View Code

 

 

 

ccf201609

0901最大波动(100分)

技术分享图片
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        
        
        List l=new ArrayList();
        int input[]=new int[n];
        int first=s.nextInt();
        for(int i=0;i<n-1;i++) {
            int second=s.nextInt();
            int abs=Math.abs(first-second);
            l.add(abs);
            first=second;
        }
        Collections.sort(l);
        int max=(int) l.get(l.size()-1);
        System.out.println(max);
    }

}
View Code

 

0902火车购票(90分)

90分,原因未解。

技术分享图片
import java.util.Scanner;

public class Main_02 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();

        int seat[][] = new int[20][5];
        int remain[] = new int[20];
        for (int i = 0; i < 20; i++) {
            seat[i][0] = i * 5 + 1;
            seat[i][1] = i * 5 + 2;
            seat[i][2] = i * 5 + 3;
            seat[i][3] = i * 5 + 4;
            seat[i][4] = i * 5 + 5;
        }
        for (int i = 0; i < 20; i++) {
            remain[i] = 5;
        }

        int ticket[] = new int[n];
        for (int i = 0; i < n; i++) {
            ticket[i] = s.nextInt();
        }

        for (int i = 0; i < n; i++) {
            int num = ticket[i];
            boolean flag = false;

            for (int j = 0; j < 20; j++) {
                if (remain[j] >= num) {
                    for (int k = 0; k < num; k++) {
                        System.out.print(seat[j][5 - remain[j]] + " ");
                        remain[j] -= 1;
                    }
                    System.out.println();
                    flag = true;
                    break;
                }
            }

            if (!flag) {
                for (int j = 0; j < 20; j++) {
                    for (int k = 0; k < remain[j]; k++) {
                        System.out.print(seat[j][5 - remain[j]] + " ");
                        remain[j] -= 1;
                        num--;
                    }
                    if (num == 0) {
                        System.out.println();
                        break;
                    }
                }

            }

        }

    }

}
View Code

 

ccf201604

0401折点计数(100)

技术分享图片
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        int n1=s.nextInt();
        //要注意边界值的处理!!!
        if(n==1) {
            System.out.println(0);
            return;
        }
        int n2=s.nextInt();
        int num=0;
        for(int i=0;i<n-2;i++) {
            int n3=s.nextInt();
            if((n2<n1&&n2<n3)||(n2>n1&&n2>n3)) {
                num++;
            }
            n1=n2;
            n2=n3;
        }
        System.out.println(num);
        
    }

}
View Code

 

0404游戏(100分)(借鉴 http://blog.csdn.net/zjj582984208/article/details/55223889)

c++实现:

技术分享图片
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;

public class Main_04 {

    public static class Node{
        int i=0,j=0,t=0;
        Node(int i1,int j1,int t1){
            i=i1;
            j=j1;
            t=t1;
                    
        }
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int m = s.nextInt();
        int t = s.nextInt();
        
        
        int danger[][][]=new int[n][m][2];
        for(int i=0;i<t;i++) {
            int r=s.nextInt();
            int c=s.nextInt();
            int a=s.nextInt();
            int b=s.nextInt();
            danger[r-1][c-1][0]=a;
            danger[r-1][c-1][1]=b;
        }
        int dir[][]= {
                {1,0},
                {0,1},
                {-1,0},
                {0,-1}
        };
        
        Queue<Node> q=new LinkedList<>();
        int seen[][][]=new int[n][m][301];
        q.add(new Node(0,0,0));
        while(!q.isEmpty()) {
            Node node=q.poll();
            if(node.i==n-1&&node.j==m-1) {
                System.out.println(node.t);
                break;
            }
            for(int i=0;i<4;i++) {
                int next_i=node.i+dir[i][0];
                int next_j=node.j+dir[i][1];
                if(next_i>=0&&next_i<n&&next_j>=0&&next_j<m&&node.t+1<300&&
                        (node.t+1<danger[next_i][next_j][0]||node.t+1>danger[next_i][next_j][1])
                        &&seen[next_i][next_j][node.t+1]==0) {
                    q.add(new Node(next_i,next_j,node.t+1));
                    seen[next_i][next_j][node.t+1]=1;
                    
                }
            }
        }

    }
}
View Code

 

 

 

 

 

 

 

 

 

 

 

 

陌上花开的博客ccf

冷暖知不知ccf

ccf

标签:tail   header   blog   generate   除法   first   false   detail   ide   

原文地址:http://www.cnblogs.com/1zhangwenjing/p/7895206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!