精华内容
下载资源
问答
  • 九度OJ
    千次阅读
    2016-07-01 08:58:40
    题目描述:
        Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。
        对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 
    时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
    输入:

        测试输入包含若干测试用例。每个测试用例的第1行包含两个整数 N (N<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号。以下有N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开。当读到 N=0 时,全部输入结束,相应的结果不要输出。

    输出:
        对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 
    时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
    样例输入:
    3 1
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    4 2
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    000002 James 98
    4 3
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    000002 James 90
    0 0
    样例输出:
    Case 1:
    000001 Zoe 60
    000007 James 85
    000010 Amy 90
    Case 2:
    000010 Amy 90
    000002 James 98
    000007 James 85
    000001 Zoe 60
    Case 3:
    000001 Zoe 60
    000007 James 85
    000002 James 90
    000010 Amy 90

    本来是一道很简单的题目,我做了好久。开始是因为C++中cin,cout超时,因为这里n最大值为100000,所以这样的输入输出必定会超时。
    果断改成C语言的输入输出,由于C不支持string的输入输出,于是改成char数组,后来又由于char数组少开了一位,没有考虑到末尾的\0. 出现了奇怪的结果。
    还有就是排序的问题,没有采用stable_sort() 稳定排序,Wrong了好久。

    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    
    struct Person{
        char number[7];
        char name[9];
        int score;
    };
    
    bool cmp1(const Person &a,const Person &b){
        return strcmp(a.number,b.number)<0;
    }
    
    bool cmp2(const Person &a,const Person &b){
        return strcmp(a.name,b.name)<0;
    }
    
    bool cmp3(const Person &a,const Person &b){
        return a.score<b.score;
    }
    
    int main(){
        int n,Case;
        int count = 1;
        while(scanf("%d",&n)){
            if(n == 0)
                break;
            scanf("%d",&Case);
            Person *P = new Person[n];
            for(int i=0;i<n;i++){
                scanf("%s %s %d\n",P[i].number,P[i].name,&P[i].score);
            }
            sort(P,P+n,cmp1);
            switch(Case){
                case 1:break;
                case 2:stable_sort(P,P+n,cmp2);break;
                case 3:stable_sort(P,P+n,cmp3);break;
            }
            printf("Case %d:\n",count++);
            for(int i=0;i<n;i++){
               printf("%s %s %d\n",P[i].number,P[i].name,P[i].score);
            }
        }
        return 0;
    }
    


    更多相关内容
  • 九度OJ

    2020-08-10 09:09:51
    考研的时候在王道论坛里面发现了九度OJ,觉得这个OJ还可以,就在上面做了一些题,目的是想对做完的题进行一些归纳与总结。时隔多年,发现九度OJ网址已经打不开了,据说是因为操作不当,数据库没了,有些可惜了。留下...

    考研的时候在王道论坛里面发现了九度OJ,觉得这个OJ还可以,就在上面做了一些题,目的是想对做完的题进行一些归纳与总结。时隔多年,发现九度OJ网址已经打不开了,据说是因为操作不当,数据库没了,有些可惜了。留下以下这几个题就当做纪念。

    1.1016

    这是一道简单题,主要要考虑到,比如说108,8,2这种类似的情况,其中8被认为是08,所以最后两位相同,输出-1。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main()
    {
     char a[20], b[20], *p, *q;

     int k, a1, b1, len1, len2, a2, b2;

     while (scanf("%s%s%d", a, b, &k)) {

       len1 = strlen(a);
       len2 = strlen(b);
       
       a2 = atoi(a);
       b2 = atoi(b);
       
       if (a2 == 0 && b2 == 0) break;
       if (len1 < k) p = a;
       else p = &a[len1-k];
       if (len2 < k) q = b;
       else q = &b[len2-k];

       a1 = atoi(p);
       b1 = atoi(q);

       if (a1 == b1) printf("-1\n");
       else printf("%d\n", a2 + b2);
     }

     return 0;
    }

    2.1011

    #include <stdio.h>
    /****
    ***** 没有做比较 简单的把相加的和小于零就丢掉,正确的方法应该要保存起来
    ******/
    int min(int x, int y)
    {
     return x > y ? y : x;
    }

    int abs(int x)
    {
     return -x;
    }

    int main()
    {
     int k, s, t, i, j, flag, max, index;
     int a[11000];
     int svalue, tvalue, value;
     int mi;

     while (scanf("%d", &k), k) {
      flag = 0;
      max = -1;
      for (i = 0; i < k; i++) {
       scanf("%d", &a[i]);
       if (a[i] > 0) flag = 1;
      }
      if (!flag) {
       printf("0 %d %d\n", a[0], a[k-1]);
       continue;
      }

      i = s = 0;
      value = 0;
      j = t = k - 1;
      svalue = tvalue = 0;
      
      while (i < j) {
       svalue += a[i];
       tvalue += a[j];

       if (svalue < 0) {//如果小于零,丢掉这一段
        s = i + 1;
        svalue = 0;
       }

       if (tvalue <= 0) {
        t =  j - 1;
        tvalue = 0;
       }

       i++;
       j--;
      }

      if (i == j) {
       mi = min(svalue, tvalue);
       if (a[i] < 0) {
        if (abs(a[i]) > svalue && abs(a[i]) < tvalue) {
         s = i + 1;
        } else if (abs(a[i]) > svalue && abs(a[i]) > tvalue)

    {
         if (svalue >= tvalue) {
          t = j - 1;
         } else {
          s = i + 1;
         }
        } else if (abs(a[i]) < svalue && abs(a[i]) >= tvalue)

    {
         t = j - 1;
        }
       }
      }
      
      for (i = 0; i <k; i ++) {
       if (a[i] > max)  {
        index = i;
        max = a[i];
       }
      }

      for (i = s; i <=t; i++) value += a[i];

      if (max > value) {//找出序列最大的元素
       printf("%d %d %d\n", max, a[index], a[index]);
       
      } else printf("%d %d %d\n", value, a[s], a[t]);
     }
     return 0;
    }

    正确的做法

    #include <iostream>

    using namespace std;

    int dig[10100];
    int main()
    {
    int n;
    while(cin>>n&&n)
    {
    for(int i=0;i<n;i++)
    cin>>dig[i];

    int num=0;
    for(int i=0;i<n;i++)
    if(dig[i]<0)
    num++;

    if(num==n)
    cout<<0<<" "<<dig[0]<<" "<<dig[n-1]<<endl;

    else
    {
    int start=0,end=0,max=-9999,sum=0;
    for(int i=0,k=0;i<n;i++)
    {
    sum+=dig[i];
    if(sum>max) {max=sum;start=k;end=i;}//保存每次的最大值,在最大值中选出最大值
    if(sum<0) {sum=0;k=i+1;}
    }
    cout<<max<<" "<<dig[start]<<" "<<dig[end]<<endl;
    }

    }
    return 0;
    }

    3.1008

    首先要说的是这题数据很特殊,有重边,是个天坑。

    #include <set>
    #include <map>
    #include <list>
    #include <cmath>
    #include <ctime>
    #include <deque>
    #include <queue>
    #include <stack>
    #include <cstdio>
    #include <string>
    #include <vector>
    #include <cctype>
    #include <cstring>
    #include <sstream>
    #include <fstream>
    #include <cstdlib>
    #include <cassert>
    #include <iostream>
    #include <algorithm>
     
    using namespace std;
    //Constant Declaration
    /*--------------------------*/
    //#define LL long long
    #define LL __int64
    const int M=1100;//最多点数
    const int INF=1<<30;
    const double EPS = 1e-11;
    const double PI = acos(-1.0);
    /*--------------------------*/
    // some essential funtion
    /*----------------------------------*/
    void Swap(int &a,int &b){   int t=a;a=b;b=t; }
    int Max(int a,int b){   return a>b?a:b;  }
    int Min(int a,int b){   return a<b?a:b;  }
    int Gcd(int a,int b){   while(b){b ^= a ^=b ^= a %= b;}  return a; }
    /*----------------------------------*/
    //for (i = 0; i < n; i++)
    /*----------------------------------*/


    int d[M][M], p[M][M];//存放距离和花费
    int min_d[M], min_p[M];//存放最小距离和最小花费
    int u[M];//保存u中的节点


    void init(int n)
    {
     int i, j;

     for (i = 1; i <= n; i++) {
      for (j = 1; j <= n; j++) {
       d[i][j] = INF;
       p[i][j] = INF;
      }
     }

     for (i = 1; i <= n; i++) {
      min_d[i] = INF;
      min_p[i] = INF;
     }

     memset(u, 0, sizeof(u));
    }

    int dijkstra(int s, int t, int n)
    {
     int i;//用来做计数
     
     int mid;//中间节点

     min_d[s] = 0;//起点到起点的距离为0
     min_p[s] = 0;//花费也为0

     for (int cnt = 0; cnt < n; cnt++) {
       int min = INF;
          for (i = 1; i <= n; i++) {

        if (!u[i] && min_d[i] < min) {//保证是u中的节点
         min = min_d[i];
         mid = i;
        }
       }
       u[mid] = 1;
       
       for (i = 1; i <= n; i++) {
        if (!u[i] && (min_d[mid] + d[mid][i]) < min_d[i]) {
          min_d[i] = min_d[mid] + d[mid][i];
          min_p[i] = min_p[mid] + p[mid][i];
        }

        if ((min_d[mid] + d[mid][i]) == min_d[i] &&
         (min_p[mid] + p[mid][i]) < min_p[i]) {
         min_p[i] = min_p[mid] + p[mid][i];
        }
       }
     }
     return 0;
    }

    int main()
    {
     
     int n, m, s, t;//分别为节点数,边数,起点编号,终点编号


     //输入
     while (scanf("%d%d", &n, &m), n + m) {
      init(n);

      int a, b, c, c1;//用来接收每一条边的信息
      int i;//用来计数

      for (i = 0; i < m; i++) {

       scanf("%d%d%d%d", &a, &b, &c, &c1);

       if (d[a][b] > c) {
        d[a][b] = d[b][a] = c;
        p[a][b] = p[b][a] = c1;
       }//无向图

       if (d[a][b] == c && p[b][a] > c1) {//输入有重边
        p[b][a] = p[a][b] = c1;
       }
      }

      scanf("%d%d", &s, &t);
      dijkstra(s, t, n);
      printf("%d %d\n", min_d[t], min_p[t]);

     }

     return 0;

    }

    4.1012和1017

    1012和1017都是畅通工程问题,1012是并查集问题,1017是最小生成树问题,可以用普里姆算法和克鲁斯卡尔算法来求,用克鲁斯卡尔的时候判断环有点困难,有人用并查集算法来判断有无环。

    5.1015

    这是一道简答题,用qsort函数很容易就能搞定,qsort的第二个参数多少个元素参与排序,一定不要写错了。还有就是记得初始化,如果不初始化用qsort函数很容易产生错误。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    struct student {
     char id[30];
     int count;
     int ques[20];
     int grade;
    }stu[1010];

    int point[1010];
    int cnt;

    int comp(const void *a, const void *b)
    {
     int res;

     struct student *p = (struct student *)a;
     struct student *q = (struct student *)b;

     if ((p->grade) == (q->grade)) {//如果成绩一样,按照名字的字母表排序
       res = strcmp(p->id, q->id);
       return res;

     } return q->grade - p->grade;
    }

    int init()//初始化
    {
     int i;
     cnt = 0;

     for (i = 0; i < 1010; i++) {
      stu[i].grade = 0;
      stu[i].count = 0;
      memset(stu[i].id, 0, 30);
      memset(stu[i].ques, 0, 20);
     }

     return 0;
    }

    int main()
    {
     int n, m, g, i, j;

     while (scanf("%d", &n), n) {
      scanf("%d%d", &m, &g);
      init();

      for (i = 1; i <=m; i++) {
       scanf("%d", &point[i]);
      }

      for (i = 0; i < n; i++) {
       scanf("%s", stu[i].id);
       scanf("%d", &stu[i].count);
       
       for (j = 0; j < stu[i].count; j++) {
        scanf("%d", &stu[i].ques[j]);
       }

       for (j = 0; j < stu[i].count; j++) {
        stu[i].grade += point[stu[i].ques[j]];
       }

       if (stu[i].grade >= g) cnt++;
      }
       qsort(stu, n, sizeof(struct student), comp);
       
       printf("%d\n", cnt);

       for (i = 0; i < cnt; i++) {
        printf("%s %d\n", stu[i].id, stu[i].grade);
       }
     }
     return 0;
    }

    展开全文
  • 这是九度OJ-题目1509:树中两个结点的最低公共祖先的测试数据,input.txt是输入数据,output.txt是输出数据。
  • 计算机机试指南九度OJ机试题目解析复试机试参考,适用于计算机考研的同学,文档整理汇总了各个分类,方便入门和刷题参考。
  • 九度OJ 1002

    2016-06-10 15:13:46
    题目描述:  Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam ...
    题目描述:

        Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam problem to 3 independent experts. If they do not agree to each other, a judge is invited to make the final decision. Now you are asked to write a program to help this process.
        For each problem, there is a full-mark P and a tolerance T(<P) given. The grading rules are:
        • A problem will first be assigned to 2 experts, to obtain G1 and G2. If the difference is within the tolerance, that is, if |G1 - G2| ≤ T, this problem's grade will be the average of G1 and G2.
        • If the difference exceeds T, the 3rd expert will give G3.
        • If G3 is within the tolerance with either G1 or G2, but NOT both, then this problem's grade will be the average of G3 and the closest grade.
        • If G3 is within the tolerance with both G1 and G2, then this problem's grade will be the maximum of the three grades.
        • If G3 is within the tolerance with neither G1 nor G2, a judge will give the final grade GJ.

    输入:

        Each input file may contain more than one test case.
        Each case occupies a line containing six positive integers: P, T, G1, G2, G3, and GJ, as described in the problem. It is guaranteed that all the grades are valid, that is, in the interval [0, P].

    输出:

        For each test case you should output the final grade of the problem in a line. The answer must be accurate to 1 decimal place.

    样例输入:
    20 2 15 13 10 18
    样例输出:
    14.0

    题目大意:在高考阅卷中,同一份卷子有多个老师批改,给定满分值和差值,如果两个老师评分在差值之内,最终分数为两者平均数;在差值之外的话,再由第三个老师评分,分以下几种情况:1,第三个老师改的分数和某一个老师改的分数在差值之内,这里只是其中的一个老师,那么取第三个老师和其中最相邻的分数的平均数 2,第三个老师改的分数和两个老师改的分数都在差值之内,那么最终分数取三个老师评的最高的分数。 其他情况的话,最终分数为第四个老师就是judge来给分

    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    using namespace std;
    
    int main(){
        int P,T,G1,G2,G3,GJ;
        while(cin>>P>>T>>G1>>G2>>G3>>GJ){
            double finalGrade;
            if(abs(G1-G2)<=T){
                finalGrade = (G1+G2)/2.0;
            }
            else if(abs(G1-G3)<=T&&abs(G2-G3)<=T)
                finalGrade = max(G1,max(G2,G3));
            else if(abs(G1-G3)<=T&&abs(G2-G3)>T)
                finalGrade = (G1+G3)/2.0;
            else if(abs(G2-G3)<=T&&abs(G1-G3)>T)
                finalGrade = (G2+G3)/2.0;
            else{
                finalGrade = GJ;
            }
            cout<<setprecision(1)<<fixed<<finalGrade<<endl;
        }
        return 0;
    }

    这里有我出现了好几次错误,第一点是 头文件的问题,如果用了abs()取绝对值的话,就要用#include <cstdlib> 如果是用<cmath>用产生歧义,这里特指用gcc编译器会发生这种错误。
    第二点是,求平均数的时候,因为设计到小数,所以分母要改成2.0,这样得出的数才是我们要求的数。如果用2的话,产生的后果是,先进行截断,再进行强转成double,导致小数都是.0的形式,不符合要求。

    展开全文
  • Freckles(九度 OJ 1144)

    2019-02-10 00:05:26
    Freckles(九度 OJ 1144) 时间限制:1 秒 内存限制:128 兆 特殊判题:否 1.题目描述: In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of...

    Freckles(九度 OJ 1144)

    时间限制:1 秒 内存限制:128 兆 特殊判题:否

    1.题目描述:

    In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of the Liberty Bell. Alas, one of the freckles turns out to be a scar, so his Ripley’s engagement falls through.Consider Dick’s back to be a plane with freckles at various (x,y) locations. Your job is to tell Richie how to connect the dots so as to minimize the amount of ink used. Richie connects the dots by drawing straight lines between pairs, possibly lifting the pen between lines. When Richie is done there must be a sequence of connected lines from any freckle to any
    other freckle.
    输入:
    The first line contains 0 < n <= 100, the number of freckles on Dick’s back. For each freckle, a line follows; each following line contains two real numbers indicating the (x,y) coordinates of the freckle.
    输出:
    Your program prints a single real number to two decimal places: the minimum total length of ink lines that can connect all the freckles.
    样例输入:
    3
    1.0 1.0
    2.0 2.0
    2.0 4.0
    样例输出:
    3.41

    2.基本思路
    该题的大致意思为平面上有n个点,而且给出了每一个点的坐标(x,y)。求将这些点都连接起来所需的线的最短长度。咋一看,其实就是最小生成树的问题。这里同样采用基于并查集实现的Kruskal算法来进行求解。首先根据提供的n个点,计算两两之间的距离得到对应的边集。然后对边集中的边根据权重进行升序排序。遍历每一条边,如果当前边的连接的两个结点已经在同一个集合当中,那么继续遍历下一条边,否则将两个结点所在的集合进行合并,并累加当前的权重到最终的答案中,以此反复直到处理完边集中所有的边为止。

    3.代码实现

    #include <iostream>
    #include <algorithm>
    #include <math.h>
    #define N 101
    
    using namespace std;
    struct Point{
        double x;
        double y;
    
    }point[N];
    
    struct Edge{
        int p1;
        int p2;
        double cost;
        operator < (const Edge&A)const{
            return cost<A.cost;
        }
    }buf[N*(N-1)/2];
    
    int Tree[N];
    int n;
    
    
    int findRoot(int x){
        int tmp;
        if(Tree[x]==-1){
            return x;//x为集合的根结点
        }
        else{
            tmp = findRoot(Tree[x]);
            Tree[x] = tmp;//每次查询的时候,把查询到的父节点不是根结点的结点的父节点都置为根结点
                          //路径压缩,防止并查集树退化为线性结构。
        }
        return tmp;
    }
    
    int main()
    {
        double ans=0;
        int r1,r2;
        int cnt=1;//对边进行计数
        while(scanf("%d",&n)!=EOF&&n!=0){
            ans=0;
            cnt=1;
            for(int i=1;i<=n;i++){//输入所有的点
                scanf("%lf%lf",&point[i].x,&point[i].y);
            }
    
            for(int i=1;i<=n;i++){
                Tree[i] = -1;
            }
    
            for(int i=1;i<=n;i++){//遍历所有的结点,构造两两点之间的边集
                for(int j=i+1;j<=n;j++){
                    if(i!=j){
                        buf[cnt].p1 = i;
                        buf[cnt].p2 = j;
                        buf[cnt].cost = sqrt((point[i].x-point[j].x)*(point[i].x-point[j].x)+(point[i].y-point[j].y)*(point[i].y-point[j].y));
                        cnt++;
                    }
                }
            }
    
            sort(buf,buf+cnt);
    
            for(int i=1;i<=n*(n-1)/2;i++){
                r1 = findRoot(buf[i].p1);
                r2 = findRoot(buf[i].p2);
    //            printf("r1 is %d,r2 is %d\n",r1,r2);
                printf("the buf[i].cost=%f\n",buf[i].cost);
                if(r1!=r2){
                    Tree[r1]=r2;//合并两个集合
                    ans += buf[i].cost;
                }
            }
    
            printf("%.2f\n",ans);
        }
        return 0;
    }
    /*
    3
    1.0 1.0
    2.0 2.0
    2.0 4.0
    */
    
    

    遇到的一些problem
    1>.关于printf函数的占位符,对于double类型的值a=1.23234,采用printf("%lf\n",a)输出的结果0.00000?为什么?必须要采用printf("%f\n",a)才可以输出正常结果
    对于printf()函数,double和float类型的数值占位符均采用"%f"不能采用"%lf"

    展开全文
  • 九度oj 题目1369:字符串的排列 剑指offer里面的题目 自己写的代码,供参考!
  • 九度OJ 1032

    2016-06-18 22:27:48
    题目描述: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。 输入: ...题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当...
  • 九度OJ 1026

    千次阅读 2016-07-14 22:12:55
    题目描述: 输入两个不超过整型定义的非负10进制整数A和B(31-1),输出A+B的m (1 输入: 输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。 当m为0时输入结束。...1
  • 九度OJ反序数1064

    2018-02-12 20:35:01
    #include&lt;stdio.h&gt; int main(){ // printf("1089*9=%d\n",1089*9); for(int i=0;i&lt;10;++i){ for(int j=0;j&lt;10;++j){ if((1000+i*100+j*10+9)*9==9000+j*100+i*10+1)......
  • 题目描述:假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即最长...
  • 九度oj1003

    2017-03-09 16:07:51
    题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。 现在请计算A+B的结果,并以正常形式输出。 ...输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 ...
  • 时间限制:1 秒 内存限制:32 兆题目描述:  有一个长度为整数L(1)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。...
  • 题目描述: 给定正整数N,函数F(N)表示小于等于N的自然数中1和2的个数之和,例如:1,2,3,4,5,6,7,8,9,10序列中1和2的个数之和为3,因此F(10)=3。输入N,求F(N)的值,1=<N<=10^100(10的100次方)若F(N)很大,则...
  • 九度OJ 1013

    千次阅读 2014-12-14 00:00:36
    题目1013:开门人和关门人 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4352 ... 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天...
  • 这两天做题被虐的难受..老是莫名其妙的不通过 ..也一直没更博 写了这道题,AC了,算是找回点自信,还是在机试指南的提示下做出来的 嗯,看下题目吧 ————————————————————————————...
  • http://ac.jobdu.com/problem.php?pid=1457 #include #include #include #include using namespace std; bool visit[101][101][101]; int n, m, s; typedef struct status { int a,b,c;... void
  • 九度OJ 1004

    千次阅读 2016-06-11 08:51:25
    题目描述:  Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1={11, 12, 13, 14} is 12, and the median of S2={9, 10, 15, 16...
  • 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4473 解决:1268 题目描述: 输入一个字符串,以回车结束(字符串长度 ...s, a, b 最前面和最后面都没有空格.
  • Jungle Roads(九度 OJ1154 ) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra ...
  • Temple of the bone(九度 OJ 1461) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: The doggie found a bone in an ancient maze, which fascinated him a lot.However, when he picked it up, the ...
  • 九度OJ的使用

    千次阅读 2016-07-13 22:27:39
    1.网址:ac.jobdu.com 2.如果以前是王道论坛的用户,直接输入那个账号和密码就行。  如果不是的话,可以在首页... ...(1)题目描述:会有一些小故事,或者要求你完成的任务。...(3)输出:对于输出数据的格式及范围的描述
  • 题目:Tr A 题目描述: A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。 输入: 数据的第一行是一个T,表示有T组数据。 每组数据的第一行有n(2 ...3 9999
  • 九度 OJ 1057:众数

    2016-05-25 18:46:38
    题目1057:众数 时间限制:1 秒 内存限制:32 兆 ...输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。...输出
  • 九度OJ 1017

    2016-06-01 16:01:23
    因为之前也这样写过,越发觉得九度OJ好烂。。 后来东改改,西改改。因为我想知道哪里超时了。后来在我改了一个小时之后发现,还是输入输出的问题,因为这里有大量的点要输入,所以用cout和cin明显就超时了,默默...
  • 九度OJ 1104 整除问题

    2016-08-07 19:34:09
    题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。 输入: 两个整数n(2 输出: 一个整数. 样例输入: 6 10 样例输出: ...我们的方法是,分
  • 九度OJ--Q1165

    2019-10-01 20:00:46
    九度OJ--Q1165 import java.util.ArrayList;import java.util.Scanner; /** 题目描述:* 读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号...
  • 九度OJ 1447

    2016-06-01 16:42:33
    题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你...
  • 九度OJ--1040

    2017-03-14 18:52:31
    题目1040:Prime Number 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8166 解决:3245 题目描述: Output the k-th prime number. 输入: k≤10000 输出: The k-th prime number. ...7
  • 有两种做法: 第一种做法,把n!做素数分解,用cnt1[i]代表n!中含有的primes[i]的因子个数:如果n/primes[i] == x, 那么在n!中就有x个数含有primes[i]为它的因子,但是这x个数中有的数含有多个primes[i]为它的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,787
精华内容 2,314
关键字:

九度OJ