版权声明:本文纯属作者口胡,欢迎转载 https://blog.csdn.net/TQCAI666/article/details/88681509
Problem A
类似超市结账,计算购买的商品的总价格。
输入
第一行为测试数据组数T(0<T<=10)
每组数据第一行为购买商品的种类n,接下来n行,每行两个数据,第一个为商品价格,第二个为商品数量,价格为实型。
输出
每一行输出相对应数据的总价值,保留两位小数。
样例输入
2
2
1.00 2
0.50 2
1
100.0 1
样例输出
3.00
100.00
代码
#include <bits/stdc++.h>
#define FF(a,b) for(int a=0;a<b;a++)
#define F(a,b) for(int a=1;a<=b;a++)
#define LEN 200
#define INF 100000
#define bug(x) cout<<#x<<"="<<x<<endl;
using namespace std;
typedef long long ll;
const double pi=acos(-1);
int main()
{
freopen("in","r",stdin);
int T,N;
scanf("%d",&T);
while(T--){
double sum=0;
double t;
int n;
scanf("%d",&N);
while(N--){
scanf("%lf%d",&t,&n);
sum+=t*n;
}
printf("%.2f\n",sum);
}
return 0;
}
ProblemB
V字型数列,当且仅当三元组i<j<k,且 a[i]>a[j]并且a[k]>a[j],算作一个V型数列。
输入
第一行为测试数据组数T
每组数据第一行为该数组的数字个数
接下来一行为数组元素
输出
输出对应数组中符合v字形数列的个数
测试数据
2
3
2 1 2
5
2 1 2 1 2
输出
1
4
代码
复杂度比较高,待优化
#include <bits/stdc++.h>
#define FF(a,b) for(int a=0;a<b;a++)
#define F(a,b) for(int a=1;a<=b;a++)
#define LEN 200
#define INF 100000
#define bug(x) cout<<#x<<"="<<x<<endl;
using namespace std;
typedef long long ll;
const double pi=acos(-1);
int a[LEN];
int main()
{
freopen("in","r",stdin);
int T,N;
scanf("%d",&T);
while(T--){
scanf("%d",&N);
FF(i,N)
scanf("%d",&a[i]);
int ans=0;
for(int i=1;i<N-1;i++){
int n=0,m=0;
for(int j=0;j<i;j++){
if(a[j]>a[i]){
n++;
}
}
for(int j=i+1;j<N;j++){
if(a[j]>a[i])
m++;
}
ans+=n*m;
}
printf("%d\n",ans);
}
return 0;
}