第一题

涵哥和杰少非常喜欢吃面条,经常结伴去面馆。一碗面条售价20元,有三种配料(鸡蛋、牛肉、鸡腿),每种配料加10元。顾客点了一碗拉面,并告诉店员他要在拉面上放什么配料。老板拿了一张纸,在上面写着一个字符串S.
字符串S由三个字母组成,如果字符串S中的第一个字母是o,这意味着拉面应该放上鸡蛋;如果这个字母是x,这意味着拉面上不应该加鸡蛋。同样,字符串S中的第二个和第三个字母表示在拉面上是否有牛肉片和鸡腿。
写一个程序,在给出字符串S的时候,输出拉面相应的价格。
输入
输入一个字符串S
条件:
字符串S由3个字母组成每个字母是o或者x
输出
输出字符串S相对应的拉面价格
样例:

oxo
40

ooo
50

xxx
20

代码:

#include <bits/stdc++.h>
using namespace std;

signed main()
{
    char s[5];
    cin >> s;
    int num = 0;
    for(int i = 0;i<3;i++)
        if(s[i] == 'o')
            num++;
    cout << num * 10 + 20;
}

第二题

杰少是一名糕点师,他使用鸡蛋和面粉可以做N种蛋糕。这些蛋糕被称为蛋糕1,蛋糕2,..蛋糕N。做一个蛋糕i (1 \(\le\) i \(\le\) N)需要消耗mi克面粉。他不能制作非整数数量的蛋糕,例如不能制作0.5个蛋糕。
现在,有X克面粉,他决定为今晚的聚会做尽可能多的蛋糕。然而,由于客人的口味不同,她将遭守以下条件:对于N种蛋糕中的每一种,至少制作一个蛋糕。
最多可以做多少个蛋糕,并不要消耗掉所有的面粉。
输入
第一行输入两个整数:N X输入N 行,每行一个整数mi
输入格式如下:
\(N X\)

\(m_1\)

\(m_2\)

\(m_N\)
条件:
\(2≤N≤100 1≤mi≤1000\)
\(m_1+m_2+ …+m_N≤X≤10^5\)
输出
输出在这个条件下制作蛋糕的最大数量
样例:

3 1000
120
100
140
9

4 360
90
90
90
90
4

5 3000
150
130
150
130
110
26

代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
#define int long long
int a[N];
signed main()
{
    int n, x;
    cin >> n >> x;
    int mi = 100000;
    int sum = 0;
    for(int i = 0;i<n;i++)
        cin >> a[i], mi = min(mi, a[i]), sum +=a[i];
    cout << ((x - sum) - 1) / mi + n;
}

第三题

某连锁快餐店提供三种披萨:A-pizza,B-pizza和AB-pizza。A-pizza和B-pizza是完全不同的披萨,而AB-pizza是A-pizza的一半和B-pizza的一半组成的。三种披萨的价格分别是A元,B元和C元
杰少为了今天晚上的跟会,要准备X个A-pizza和Y个B-pizza。他可以直按购买A-pizza和B-pizza,或者购买两个AB-pizza来新组成一个A-pizza和一个B-pizza,通过这几种方式购买,最少要花费多少元注意:新组装的披萨数量可以比需要的数量多,但是花费不能多,这样可以吃到更多的披萨。
输入
输入5个整数:\(A\) \(B\) \(C\) \(X\) \(Y\)
条件:
\(1 \le A,B,C \le 5000\)
\(1 \le X,Y \le 10^5\)
输出
输出需要准备的披萨最少需要花费多少元

样例:

1500 2000 1600
3 2
7900

1500 2000 1900
3 2
8500

1500 2000 500
90000 100000
100000000

代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int a, b, c, x, y;
	cin >> a >> b >> c >> x >> y;
	if(a + b <= 2 * c)
		cout << x * a + y * b;
	else 
	{
		if(x < y)
			swap(x, y), swap(a, b);
		if(a > 2 * c)
			a = 2 * c;
		cout << y * c * 2 + (x - y) * a; 
	}
}

第四题

餐厅里有—张圆环形餐桌,餐桌的外周长是C米,顾客不能进入到餐桌里面。
现在餐桌上有N块蛋糕,从你站立的点上,顺时针开始测量到下一个蛋糕放置的点距离是xi米,第个站点上的蛋糕的营养价值是vi千卡。
你可以顺时针或者逆时针走,但是不允许回头走。当你走到蛋糕放置的地方时,可以吃掉蛋糕增加营养,蛋糕会消失。在行走时,每走1米消耗1千卡营养.
只要你想离开,随时可以从任意点上离开,不必回到最初的位置上。总的来说,就是在你离开餐桌前,能够得到最多多少营荞。也就是说,得到的营养值减去消耗的营荞值最大可能值是多少?假设没有其它的顾客,蛋糕也不会增加。在你的身体里有充足的营养,无论走多少路,消耗多少营养,都不会被饿死。
输入
输入第一行两个整数:\(N\) \(c\)
从第二行开始输入\(N\)行,\(x_i\) \(v_i\)输入格式如下:
\(N\) \(c\)
\(x_1\) \(v_1\)
\(x_2\) \(v_2\)
\(x_N\) \(v_N\)
条件:\(1≤N≤104\)
\(2≤C≤10^5\)
\(1≤x_1<x_2<…<x_N<C\)
\(1≤v_i≤104\)
样例:

3 20
2 80
9 120
16 1
191

3 20
2 1
9 80
16 120
189

代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int a[100010], b[100010];
	int n, p;
	cin >> n >> p;
	for (int i = 0; i < n; i++)
		cin >> a[i] >> b[i];
	int ans = 0, now = 0;
	for (int i = 0; i < n; i++)
		ans = max(ans, now + b[i] - a[i]), now += b[i];
	now = 0;
	for (int i = n; i >= 0; i--)
		ans = max(ans, now + b[i] - (p - a[i])), now += b[i];
	cout << ans;
}

原文地址:http://www.cnblogs.com/zzh1206/p/16818058.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性