CSP-X模拟题第三套-信心赛题解

1.买牛奶

时间限制:1秒        内存限制:128M

题目描述

凯文先生是个生活非常规律的人,一日三餐从不改变,喜欢喝“玉兰”牌的瓶装牛奶。凯文先生每餐都要喝半斤牛奶,而他喜欢的种类只有1斤装的,没喝完的会在下次进餐时继续喝。由于交通不方便,凯文先生会一次采购若干天的牛奶数量。问凯文先生一次至少买多少瓶? 

输入描述

输入文件:milk.in 

仅一行,一个正整数N(0< N <20),表示天数。

输出描述

 输出文件:milk.out    

仅一行,一次至少购买的牛奶瓶数。

样例

输入

1

输出

2

核心:ceil(n*3*0.5/1)

#include 
#include 
using namespace std;
int main(){
	freopen("milk.in","r",stdin);
	freopen("milk.out","w",stdout);
	double ds,as;
	cin>>ds;
	as=ceil(ds*3*0.5/1);
	cout<

2.百鸡问题

时间限制:1秒        内存限制:128M

题目描述

百鸡问题:一只公鸡值5元,一只母鸡值3元,而1元可买3只小鸡。现有100元钱,想买100只鸡。问可买公鸡、母鸡、小鸡各几只?

输入描述

输入文件:chook.in  

无输入数据。

输出描述

 输出文件:chook.out  

若干行,每行三个数分别为公鸡数、母鸡数、小鸡数,表示一种可能的购买方案,按公鸡数从小到大排列。

这这这?不就是打表的题

注意能算不举,不然三层嵌套循环电脑撑不住

#include 
using namespace std;
int main(){
	freopen("chook.in","r",stdin);
	freopen("chook.out","w",stdout);
	cout<<"0 25 75"<

3.哈夫曼编码

时间限制:1秒        内存限制:128M

题目描述

哈夫曼编码是一种编码方式,是可变字长编码的一种,由Huffman于1952年提出。该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫Huffman编码。简单地来说,就是出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的。
现在请你模拟这样的原则对给定的一个字符串进行字母统计。

输入描述

输入文件:code.in  

输入只有一行,是一个字符串,由小写英文字母组成,长度不超过255个字符。

输出描述

输出文件:code.out

输出有若干行,每行有两部分组成:一个字母和该字母出现的频率,中间用一个空格分隔,并按频率高低排列,频率相同时则按字母的ASCII码的先后顺序排列。

样例

输入

soon

输出

o 2 
n 1 
s 1

是这套题里面唯一有一点难度的题

思路:建立结构体存储字母和出现次数,最后通过好写的稳定的冒泡排序解决保持ASCII码顺序的问题

#include 
using namespace std;
struct pl{
	char let;
	int letpl=0;
};
pl tj[27];
pl tmp;
int main(){
	freopen("code.in","r",stdin);
	freopen("code.out","w",stdout);
	string str;
	cin>>str;
	for(int i=0;itj[i].letpl){
				tmp.let=tj[j].let;
				tj[j].let=tj[i].let;
				tj[i].let=tmp.let;
				tmp.letpl=tj[j].letpl;
				tj[j].letpl=tj[i].letpl;
				tj[i].letpl=tmp.letpl;
			}
		}
	}
	for(int i=0;i<26;i++){
		if(tj[i].letpl==0){
			return 0;
		}
		cout<

4.达到分数线的人数

时间限制:1秒        内存限制:128M

题目描述

高三联考刚刚结束,经过各科老师的努力,各个学科的改卷工作终于结束了,每位同学的各科分数也已经结算完毕。此时,校长拿到了清华大学的理科预估分数线k,可是每位同学的总分还没有计算出来。每位同学共有m门成绩,包括语文、数学、外语、综合、体育等。
校长请你帮忙,统计一下,总分可以达到清华大学分数线的同学人数。(总分大于或等于分数线即可)
输入描述

输入文件:score.out    

第一行三个整数n,m和k,分别表示参加考试的人数,考试门数和预估分数线。
1<=n<=1000, 3<=m<=7,600<=k<=810,。
接下来n行,每行m个整数,表示每位同学的m门学科的成绩。成绩0<=x<=300。

输出描述

输出文件:score.out    

一个整数,表示达到分数线的人数。

样例

输入

3 5 721
123 141 136 288 56
103 120 111 250 50
133 130 141 270 58

输出

2

​傻逼题。

#include 
using namespace std;
int main(){
	freopen("score.in","r",stdin);
	freopen("score.out","w",stdout);
	int n,m,yg,tmpsum,intmp,ans=0;
	cin>>n>>m>>yg;
	for(int i=0;i>intmp;
			tmpsum+=intmp;
		}
		if(tmpsum>=yg){
			ans++;
		}
	}
	cout<

最后提醒大家一定要初始化计数数组!这种傻逼错误我再也会犯了55555

你可能感兴趣的:(CSP-X模拟题第三套-信心赛题解)