• 2018.02.01(考试)


    2018.01.07

    寒假培训热身赛

    1.奖学金

     1 #include <stdio.h>
     2 #include <math.h>
     3 #include <string.h>
     4 int grade[500][3];
     5 int main(){
     6     freopen("scholar.in","r",stdin);
     7     freopen("scholar.out","w",stdout);
     8     int n;
     9     int i,j;
    10     scanf("%d",&n);
    11     for(i=1;i<=n;i++){
    12         grade[i][0]=i;
    13         int b,c;
    14         scanf("%d%d%d",&grade[i][1],&b,&c);
    15         grade[i][2]=grade[i][1]+b+c;
    16     }
    17     /*排序*/
    18     int t;
    19     for(i=1;i<n;i++){
    20         int max=i;
    21         for(j=i+1;j<=n;j++){
    22             if(grade[max][2]<grade[j][2])
    23                 max=j;
    24             else if(grade[max][2]==grade[j][2]){
    25                 if(grade[max][1]<grade[j][1])
    26                     max=j;
    27                 else if(grade[max][1]==grade[j][1]&&grade[max][0]>grade[j][0])
    28                     max=j;
    29             }
    30         }
    31         if(max!=i){
    32             t=grade[max][0];grade[max][0]=grade[i][0];grade[i][0]=t;
    33             t=grade[max][1];grade[max][1]=grade[i][1];grade[i][1]=t;
    34             t=grade[max][2];grade[max][2]=grade[i][2];grade[i][2]=t;
    35         }
    36     }
    37     for(i=1;i<=5;i++)
    38         printf("%d %d
    ",grade[i][0],grade[i][2]);
    39     return 0;
    40 }
    View Code

    状态:AC

    2.纪念品分组

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <iostream>
     5 #include <algorithm>
     6 using namespace std;
     7 int book[30001],w;
     8 int numb[30001];
     9 int n,yhb=0;
    10 int main(){
    11     freopen("group.in","r",stdin);
    12     freopen("group.out","w",stdout);
    13     scanf("%d%d",&w,&n);
    14     int i,j;
    15     for(i=0;i<n;i++){
    16         scanf("%d",&numb[i]);
    17         book[i]=1;
    18     }
    19     sort(numb,numb+n);
    20     for(i=n-1;i>=0;i--){
    21         int sum;
    22         sum=w;
    23         if(book[i]==1){
    24             yhb++;
    25             book[i]=0;
    26             for(j=i-1;j>=0;j--){
    27                 if(book[j]==1&&sum>=numb[i]+numb[j]){
    28                     book[j]=0;
    29                     break;
    30                 }
    31             }
    32         }
    33     }
    34     printf("%d
    ",yhb);
    35     return 0;
    36 }
    View Code

    状态:AC

    3.守望者的逃离

     1 #include <stdio.h>
     2 #include <math.h>
     3 #include <string.h>
     4 int magic,time,S;
     5 int _Max(int x,int y){return x>y?x:y;}
     6 int main(){
     7     freopen("escape.in","r",stdin);
     8     freopen("escape.out","w",stdout);
     9     scanf("%d%d%d",&magic,&S,&time);
    10     int i,j;
    11     int walk=0,flash=0;
    12     for(i=1;i<=time;i++){
    13         walk+=17;
    14         if(magic>=10){
    15             magic-=10;
    16             flash+=60;
    17         }
    18         else magic+=4;
    19         walk=_Max(walk,flash);
    20         if(walk>=S){
    21             printf("Yes
    %d",i);
    22             return 0;
    23         }
    24     }
    25     printf("No
    %d",walk);
    26     return 0;
    27 }
    View Code

    状态:AC

    4.hanoi双塔问题

     1 #include <stdio.h>
     2 #include <math.h>
     3 #include <string.h>
     4 int noi[1001],wei;
     5 int main(){
     6     freopen("hanoi.in","r",stdin);
     7     freopen("hanoi.out","w",stdout);
     8     int n;
     9     scanf("%d",&n);
    10     for(int i=1;i<=1000;i++)noi[i]=0;
    11     noi[1000]=1;
    12     for(int i=1;i<=n+1;i++){
    13         if(i==n+1){
    14             noi[1000]-=1;
    15             for(int j=1000;j>=1;j--)
    16                 if(noi[j]<0){
    17                     noi[j]+=10;noi[j-1]-=1;}
    18         }
    19         for(int j=1;j<=1000;j++)noi[j]*=2;
    20         for(int j=1000;j>=1;j--)
    21             if(noi[j]>=10){
    22                 noi[j]-=10;noi[j-1]++;}
    23     }
    24     for(int i=1000;i>=1;i--)
    25         if(noi[i]!=0)wei=i;
    26     for(int i=wei;i<=1000;i++)
    27         printf("%d",noi[i]);
    28     return 0;
    29 }
    View Code

    状态:AC

     P.S.     今天又学习了sort函数的一种新操作:sort ( a , a + n , cmp )。cmp是你自己定义的一个函数,在里面可以重新定义sort函数的比较规则,比如从大到小,排序结构体等。

    反思

        对于这次考试,发挥的不是很好。这四道题考查了动态规划之前的除搜索以外所有的基础算法,是一套比较全面的综合题。从考试的情况来看,成绩并不理想,400分只有290分。袁老师说他本来以为我可以上300分的。既然没有达到预期的效果,那么就要反思:

        1.第一题。

        2.第二题。

        3.第三题。

        4.第四题。

  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/yzyl-Leo-wey/p/8399663.html
Copyright © 2020-2023  润新知