好多考试
来源:互联网 发布:正常人的阅读速度 知乎 编辑:程序博客网 时间:2024/03/29 00:44
description
期末到了,一学期基本上都没上课的ACMer,们要开始预习了…每一科的考试时间也都出来了,每一科的学分也都知道,如果没预习挂掉的话可是要扣学分的…假设每预习一科需要一天的时间,自己安排复习时间,让挂掉的学分最少。
input
输入数据有多组,每组三行,每行有多个整数,其中第一个整数为数字N(1<=N<=1000) (不要问我为什么考这么多),第二行有N个整数数T, Ti(1<=Ti<=1000)表示第i门课的考试时间,第三行有N个数,Ci(1<=Ci<=1000)表示第i门课的学分。
output
每组数据输出一行,表示扣掉的最小的学分 .
sample_input
33 3 310 5 131 3 16 2 371 4 6 4 2 4 33 2 1 7 6 5 4
sample_output
035
特别说明:第i天考试,第i天仍可预习一科。额,,你迷糊了吧???我也是啊 可是学校老师告诉我人家是晚上考试!!!是不是很奇葩呢????我的一点想法:先按照学分的递减(学分相同的话,在按照考试时间由晚到早)排序。然后安排学分多的先在考得那天复习,若那天已被占用,则从这一天往前找一天复习,找到就按排在那一天
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>struct A{ int x,y;};using namespace std;bool cmp(const A &a,const A &b){ if(a.y==b.y) return a.x<b.x; return a.y>b.y;}int main(){ A a[1005]; bool vis[1005]; int n,i,j,blog,ans=0; while(~scanf("%d",&n)) { ans=0; memset(vis,0,sizeof(vis)); for(i=0; i<n; i++) scanf("%d",&a[i].x); for(i=0; i<n; i++) scanf("%d",&a[i].y); sort(a,a+n,cmp); for(i=0; i<n; i++) { blog=0; for(j=a[i].x-1; j>=0; j--) if(!vis[j]) { vis[j]=true; blog=1; break; } if(!blog) ans+=a[i].y; } printf("%d\n",ans); } return 0;}
,找不到就等着这科挂吧……
0 0
- 好多考试
- nefu 617 好多考试
- 好多
- 的好多好多好多废话
- 好多好多排序
- 考试
- 考试!
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试
- 考试!
- FusionCharts MSBar3D图
- Java concurrent Framework并发容器之ConcurrentHashMap(Doug Lea 非JDK版)源码分析
- 最短路经算法简介(Dijkstra算法,A*算法,D*算法)(转载)
- 马上Go 1.1
- 黑马程序员__18java基础增强
- 好多考试
- CSS入门之背景样式实例,背景图滚动:background-attachment,background复合样式
- 华为笔试题
- CodeForces 385E Bear in the Field
- 图像处理之仿油画效果
- hdu 1850 (nim games)
- Chromium on Android: Chromium线程局部存储(TLS)系统
- Linux上实现双向进程间通信管道(socketpair)
- 如何改变Android应用的运行环境