2018年北邮网研机试

版权声明:本文纯属作者口胡,欢迎转载 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;
}

猜你喜欢

转载自blog.csdn.net/TQCAI666/article/details/88681509
今日推荐