Skip the Class
BestCoder Round #92
Skip the Class
Finally term begins. luras loves school so much as she could skip the class happily again.(wtf?)
Luras will take n lessons in sequence(in another word, to have a chance to skip xDDDD).
For every lesson, it has its own type and value to skip.
But the only thing to note here is that luras can't skip the same type lesson more than twice.
Which means if she have escaped the class type twice, she has to take all other lessons of this type.
Now please answer the highest value luras can earn if she choose in the best way.
The first line is an integer T which indicates the case number.
And as for each case, the first line is an integer n which indicates the number of lessons luras will take in sequence.
Then there are n lines, for each line, there is a string consists of letters from 'a' to 'z' which is within the length of 10, and there is also an integer which is the value of this lesson.
The string indicates the lesson type and the same string stands for the same lesson type.
It is guaranteed that——
T is about 1000
For 100% cases, 1 <= n <= 100,1 <= |s| <= 10, 1 <= v <= 1000
As for each case, you need to output a single line. there should be 1 integer in the line which represents the highest value luras can earn if she choose in the best way.
2
5
english 1
english 2
english 3
math 10
cook 100
2
a 1
a 2
115
3
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#define FOR(i,x,n) for(int i=x;i<n;i++)
#define ll long long int
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define MAX_N 50005 using namespace std; struct node{
char course[];
int v;
}; node no[]; int compar(char a[],char b[]){
int aa=strcmp(a,b);
if(aa>){
return ;
}
return ;
} int compar2(char a[],char b[]){
int aa=strcmp(a,b);
if(aa==){
return ;
}
return ;
} int cmp(node a,node b){
return compar(a.course,b.course)||compar2(a.course,b.course)&&a.v>b.v;
} int main()
{
//freopen("data.txt", "r", stdin);
//freopen("data.out", "w", stdout);
int T;
int n;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
FOR(i,,n){
scanf("%s ",&no[i].course);
scanf("%d",&no[i].v);
}
sort(no,no+n,cmp);
int cou;
int sum=;
sum+=no[].v;
cou=;
FOR(i,,n){
if(compar2(no[i].course,no[i-].course)){
if(cou==){
sum+=no[i].v;
cou++;
}else{
continue;
}
}else{
sum+=no[i].v;
cou=;
}
}
printf("%d\n",sum); }
//fclose(stdin);
//fclose(stdout);
return ;
}
Skip the Class的更多相关文章
- LINQ系列:LINQ to SQL Take/Skip
		
1. Take var expr = context.Products .Take(); var expr = (from p in context.Products select p) .Take( ...
 - EntityFramework 7 OrderBy Skip Take-计算排序分页 SQL 翻译
		
先解释一下这个标题的意思,OrderBy 在 Linq 语句中,我们经常使用,比如 OrderBy(b => b.BlogId) 就是对 BlogId 字段进行升序排序,这是针对一个字段的排序, ...
 - 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
		
AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.Ord ...
 - Xcode插件安装 错选了Skip Bundle解决办法
		
1.首先找到Xcode的UUID,在终端运行defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID ...
 - ASP.NET泛型List的各种用法Skip、Take等
		
List在.NET里面使用得非常频繁,但有好多人不了解它各种小用法.我就一直记不大住... asp.net中List的简单用法,例如: 1 2 3 4 5 6 7 List<int> li ...
 - mongodb-$type、limit、skip、sort方法、索引、聚合
		
一.$type操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 ...
 - Xcode安装插件,错误选择了Skip Bundles,重新出现Load Bundles方法
		
Xcode安装插件经常会遇到这样的问题,出现提示性选择,还是英文提示,所以没仔细看就习惯性的选择了右侧的按钮 点击了Skip Bundle,结果悲剧的发现,发现插件完全失效了,以后不管怎么打开Xcod ...
 - [Android Pro]   InputStream.skip方法的思考
		
参考 : http://blog.csdn.net/gsyzhu/article/details/8102286 在java.io.InputStream类中定义了skip这个方法.在API中的描述如 ...
 - 跳跃表Skip List的原理和实现
		
>>二分查找和AVL树查找 二分查找要求元素可以随机访问,所以决定了需要把元素存储在连续内存.这样查找确实很快,但是插入和删除元素的时候,为了保证元素的有序性,就需要大量的移动元素了.如果 ...
 - 转MongoDB 使用Skip和limit分页
		
关于MongoDB 数据分页和排序 limit,skip用户的一些基础语句,介绍MongoDB 数据分页和排序实例方法. 使用Skip和limit可以如下做数据分页: Code: page1 = db ...
 
随机推荐
- 5、python的变量和常量
			
今天看看python的变量和常量,这是python中最基本的两个概念. 首先先说一下解释器执行Python的过程: python3 C:\test.py 1. 启动python解释器(内存中) ...
 - mysql技巧:如果记录存在则更新/如果不存在则插入的三种处理方法
			
先建一个表,便于后面讨论: CREATE TABLE `t_emp` ( `f_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `f_em ...
 - vue-cli配置多入口多出口,实现一个项目两个访问地址,区分不同上线环境
			
最近工作中需要把项目分割成两块,一块需要跑在微信中,通过微信jdk获取用户资料默认登录,一部分需要给原生app做webview的内嵌页面,当然这部分内容是不跑在微信中的. 所以我想到了把项目分成两部分 ...
 - java利用Tesseract 识别身份证号码
			
安装Tesseract http://blog.csdn.net/hiredme/article/details/50894814 http://blog.csdn.net/yoara/article ...
 - SSE图像算法优化系列二十五:二值图像的Euclidean distance map(EDM)特征图计算及其优化。
			
Euclidean distance map(EDM)这个概念可能听过的人也很少,其主要是用在二值图像中,作为一个很有效的中间处理手段存在.一般的处理都是将灰度图处理成二值图或者一个二值图处理成另外一 ...
 - 设置mysql 事务锁超时时间 innodb_lock_wait_timeout
			
Mysql数据库采用InnoDB模式,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错. mysql> SHOW GLOBAL ...
 - 每天一个linux命令(15):tail命令
			
1.命令简介 tail (tail) 用来显示档案的结尾(默认为10行)至标准输出中.若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头.如果不指定文件或文件为"-" ...
 - 二叉树遍历-c实现
			
这里主要是三种遍历,先序(preorder,NLR),中序(Inorder,LNR),后序(Postorder,LRN) N:node,L:left,R:right 基本排序:先序(NLR,节点,左, ...
 - 物联网系统与CoAP之Hello,World
			
物联网系统与CoAP Hello,World 关于CoAP与物联网系统我们在上一篇中(ps:CoAP与物联网系统)中做一个简单的介绍,接着我们便開始试试CoAP协议的应用 CoAP应用 開始之前我们须 ...
 - 【javascript】定时器组件
			
'use strict'; module.exports = function() { this.timer = {}; this.config = {}; // 初始化参数 this.init = ...