Course(简单的字符串处理问题)

Course

时间限制:1000 ms  |  内存限制:65535 KB

【问题描述】

There is such a policy in Sichuan University that if you are not satisfied with the score of your course, you can study this course again to get a better score. If you do this and get a higher score(than the highest score he got before), it can cover the original one. And we can say this time you update the score of this course successfully.

Here is one schoolmate‘s all the courses he has studied and scores he got (sorted by chronological order). So could you tell me how many time he successfully update his scores of courses?

【输入】

The first of input is an integer T which stands for the number of test cases. For each test case the first line is an integer N (1 <= N <= 100) which stands for the number of courses he has studied. Then following N lines, each line contains a string (only contains letters and the length is no more than 30,which stands for the course name) and an integer (0<=integer<=100, which stands for the score of the course),separated by a space.

Remember: the best way is getting the best score in one time.

Study one course many times is not a recommended choice!

【输出】

For each test case output the number of times he update successfully.

【样例输入】

2

6

CProgramming 70

DataStructrue 80

CProgramming 80

CProgramming 60

CProgramming 90

DataStructrue 70

2

CompilerTheory 95

Network 90

【样例输出】

2

0

一道很无脑的题,简单来说就是算出成绩突破次数。我还花了半个多小时,真是打脸啊。。。。

普通结构体写法:

#include<cstdio>
#include<cstring>
struct course
{
	char name[35];
	int score;
}p[105];
int main()
{
	int i,j,m,n,count,num,sum;
	char str[35];
	scanf("%d",&n);
	while(n--)
	{
		count=sum=0;
		scanf("%d",&m);
		for(i=0;i<m;i++)
		{
			int sign=1;
			scanf("%s%d",str,&num);
			for(j=0;j<count;j++)
				if(!strcmp(p[j].name,str)&&num>p[j].score)
				{p[j].score=num;sign=0;sum++;break;}
				if(sign)
				{strcpy(p[j].name,str);p[j].score=num;count++;}
		}
		printf("%d\n",sum);
	}
	return 0;
}

以此为鉴,下不为例。

时间: 2024-10-08 01:58:42

Course(简单的字符串处理问题)的相关文章

ZOJ 1115 Digital Roots(简单,字符串与数)

题目 //好一道水水题,可是我居然也错了那么多次,后来百度来发现是因为数据数位可能很长很长,要用字符串数组... //简单 //有坑啊——数据可能很大很大,要用字符串表示! #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { char s[1010]; while(scanf("%s",s)!=EOF) { if(strc

简单计算字符串的高度

计算字符串的高度有很多种,这里写下最常用的简单计算字符串的高度 // // NSString+NSStringExt.h // UIFontSize // // Created by mac on 15/11/14. // Copyright (c) 2015年 叶炯. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface NSString (NSSt

简单操作字符串

使用javascript实现常用的字符串操作. 一,字符串按逗号分割装入数组,使用split()函数可以实现. var str=",,,,,,,,,,,abc,123,4cc,569,dfk,,,,,,,,"; function goArray(str){ var arr=[]; var s=""; var j=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)!=','&&i!=str.len

Redis数据结构(一)简单动态字符串

Redis的字符串采用的是自定义的struct,名字叫做简单动态字符串(simple dynamic string,SDS). 结构如下: struct sdshdr{ int len; int free; char buf[]; }; 采用如此结构的好处是: [1]获取length的时候复杂度为O(1),不需要O(n): [2]动态分配空间,避免缓冲区溢出,避免每次修改或者append都重新分配: [3]二进制安全: 关于第一点显而易见,第二点,为了减少修改字符串带来的内存重分配次数,redi

自已动手写Redis【简单动态字符串序列一】

第一章 简单动态字符串 2.1 引言 字符串String是程序设计中最为常见的一种数据结构,也是最为重要的一种数据结构,Hello World!这个最为精典的程序,是绝大部份人学习一种程序设计语言的入门程序,在这个最为精典的入门程序中,Hello World!就是字符串类型,字符串可以用于软件中信息的提醒.保存等,Redis中key都是String类型的,因此了解String类型对于我们了解Redis以及动手写Redis都是非常有益的. 2.2 字符串基本概念 以上是我们最为熟悉的Hello W

shell中简单的字符串操作

在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子命令. ${#VALUE}:计算VALUE字符串的字符数量. ${VALUE%.*}或${VALUE%%.*}:删除VALUE字符串中以分隔符"."匹配的左边字符,保留右边字符. ${VALUE#*.}或${VALUE##*.}:删除VALUE字符串中以分隔符"."匹配的右

Redis源码解析01: 简单动态字符串SDS

Redis没有直接使用C字符串(以'\0'结尾的字符数组),而是构建了一种名为简单动态字符串( simple  dynamic  string, SDS)的抽象类型,SDS设计API实现对字符串的各种修改. 1:SDS的定义 在sds.h中,定义了结构体sdshdr表示SDS,其定义如下: struct sdshdr { unsigned int len; unsigned int free; char buf[]; }; len记录SDS保存的字符串的长度(不包括末尾的'\0'):free记录

redis 简单动态字符串 SDS

redis 没有直接使用c语言传统的字符串表示,而是自己构建了简单动态字符串(SDS)的抽象类型,并将SDS用作redis的默认字符串表示 redis的数据库里面,包含字符串值的键值对在底层都是SDS实现的 执行 rpush fruits "apple" "banana" "pits" 那么redis将在数据库中创建一个新的键值对,其中: 1.键值对的键是一个字符串对象,对象的底层实现是一个保存了字符串的fruits的SDS 2.键值对的值是一个

Redis数据结构之简单动态字符串

Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将SDS用作Redis的默认字符串表示.在Redis中,C字符串只会作为字符串字面量,用在一些无需对字符串值进行修改的地方,例如打印日志. 一.SDS的结构定义 示例: 二.SDS与C字符串的区别1. 常数复杂度获取字符串长度C字符串长度计算:遍历整个字符串直至遇到代表字符串结尾的空字符,时间复杂度为O(N).SDS长

Redis底层探秘(一):简单动态字符串(SDS)

redis是我们使用非常多的一种缓存技术,他的性能极高,读的速度是110000次/s,写的速度是81000次/s.这么高的性能背后,到底是怎么样的实现在支撑,这个系列的文章,我们一起去看看. redis的底层数据结构有以下7种,包括简单动态字符串(SDS),链表.字典.跳跃表.整数集合.压缩列表.对象.今天我们一起看下简单动态字符串(simple dynamic string),后面的文章以SDS简称. SDS简介 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符串数组,以下简称