zoukankan      html  css  js  c++  java
  • SDUT2076Doing Homework again

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2076&cid=1159

    示例输入

    3
    3
    3 3 3
    10 5 1
    3
    1 3 1
    6 2 3
    7
    1 4 6 4 2 4 3
    3 2 1 7 6 5 4

    示例输出

    0
    3
    5
    这个题用贪心思路解题,做的时候最主要的是进行数组的标记,每份作业都只有一天写完,把分值从大到小排序,从最大的开始看是否有时间去做
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 struct node
     4 {
     5     int u,v,w ;
     6 }a[10001],b ;
     7 int main()
     8 {
     9     int t ;
    10     while(scanf("%d",&t)!=EOF)
    11     {
    12         for(int h = 1 ; h <= t ; h++)
    13         {
    14             int n ;
    15             int i , j;
    16             int m ;
    17             int score ;
    18             scanf("%d",&n);
    19             for(i = 0 ; i <= n-1 ; i++)
    20             scanf("%d",&a[i].u);
    21             for(j = 0 ; j < n ; j++)
    22             {
    23                 scanf("%d",&a[j].v);
    24                 a[j].w = 0 ;
    25             }
    26             for(i = 0 ; i <= n-2 ; i++)
    27             {
    28                 for(j = 0 ; j <= n-2-i ; j++)
    29                 {
    30                     if(a[j].v < a[j+1].v)
    31                     {
    32                         b = a[j] ;
    33                         a[j] = a[j+1] ;
    34                         a[j+1] = b ;
    35                     }
    36                 }
    37             }
    38             int sum = 0 ;
    39 
    40             for(i = 0 ; i <= n-1 ; i++)
    41             {
    42                 score = a[i].u ;
    43                 m = 0 ;
    44                 int l ;
    45                 for(l = score-1 ; l >= 0 ; l--)
    46                 {
    47                     if(a[l].w == 0)
    48                     {
    49                         a[l].w = 1 ;
    50                         m = 1 ;
    51                         break ;
    52                     }
    53                 }
    54                 if(m == 0)
    55                 sum = sum+a[i].v ;
    56             }
    57             printf("%d\n",sum) ;
    58         }
    59     }
    60     return  0 ;
    61 }
    View Code
  • 相关阅读:
    iOS7 自己定义动画跳转
    Android开发之用双缓冲技术绘图
    postgres 使用存储过程批量插入数据
    渗透过程
    python pytesseract使用
    排序算法比较
    python算法
    python中PIL模块
    数字电路复习
    windows服务参考
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3118189.html
Copyright © 2011-2022 走看看