题目描述
类似超市结账,计算购买的商品的总价格。
输入:
第一行为测试数据组数T(0
输出
每一行输出相对应数据的总价值,保留两位小数。
样例输入
2
2
1.00 **样例输入**
样例输出
3.00
100.00
代码
#include
using namespace std;
int main()
{
int T, N;
cin >> T;
while( T-- )
{
cin >> N;
double price;
int amount;
double total = 0;
while( N-- )
{
cin >> price >> amount;
total += price*amount;
}
printf("%0.2f\n", total);
}
return 0;
}
题目描述
当且仅当三元组i
输入
第一行为测试数据组数T
每组数据第一行为该数组的数字个数(每组数据的个数不超过50)
接下来一行为数组元素
输出
输出对应数组中符合v字形数列的个数
样例输入
2
3
2 1 2
5
2 1 2 1 2
样例输出
1
4
思路
思路一: 每组数据的个数不超过50,那么采用暴力的方法,时间复杂度为503, 远低于百万数量级,所以采用暴力方法不会超时
思路二:V字形序列,对于每个元素,左边元素比当前大,右边元素比当前大。
设置两个数组,分别储存左边更大的元素的个数和右边更大的元素的个数,两数组对应位置想成即得到结果。
求数组时,对于每个元素都需遍历左右两边,所以时间复杂度为O(n2)
代码
#include
using namespace std;
const int maxn = 50;
int A[maxn];
int main()
{
int T;
cin >> T;
while( T-- )
{
int N;
cin >> N;
for( int i = 0; i < N; i++ )
cin >> A[i];
int sum = 0;
for( int i = 0; i < N; i++ )
for( int j = 1; j < N; j++ )
for( int k = 2; k < N; k++ )
{
if( i < j && j < k && A[j] < A[i] && A[j] < A[k] )
sum++;
}
cout << sum << endl;
}
return 0;
}
题目描述
输入为4个数字,a,b,c,d。若a^b^c^d=24,则称该数组满足24点,其中^可以为+、-、*、/任一个,若不能得到结果24,则称该数组不满足24点。(计算为实型)
输入:
第一行为测试组数t
接下来t行,每一行为四个整数a,b,c,d,测试是否满足24点
1<=a,b,c,d<10000(右区间忘了,反正四个数不为0)
输出
在每一行
若满足,输出YES
不满足,输出NO
思路
此题一看,共64种情况,暴力不会超时。于是,写着写着,嗯。不做了。。。
题目描述
对于每一个零件都有一个适宜温度区间,[Ri,Ji],当温度t
输入 输出 样例输入 样例输出 分析 代码
第一行按顺序分别为 n,x,y,z。0
确定一个温度值t,在这温度下所有零件的总价值最大,并输出该价值
3 1 3 2
1 4
2 5
7 10
7
输入温度时标记每个温度是区间左端点还是区间右端点。
将所有区间端点投射到同一根x轴上,从最左边温度开始逐步向右区间移动。
以最左边区间温度为基准,计算一次总价值,此后,温度变化为其它区间端点时,总价值变化规则如下
1.若下一个温度为左端点,则价值增加值为y-x;
2.若下一个温度为右端点,则价值减少值为y-z;
再次过程中,比较并记录最大的价值。
时间复杂度为O(区间个数)#include