列表

详情


NC24632. 多项式

描述

小A有个多项式,以的形式给出
小A想知道这个多项式化简后有多少个非零项

输入描述

第一行数据组数,表示共组数据
对于每组数据,第一行一个整数,表示给出的项的个数
接下来行,每行两个数字 和 ,代表给出的一个项。

输出描述

对于每组数据,输出一个数字,表示多项式中非零项的个数

示例1

输入:

1
3
1 7
2 6
3 4

输出:

3

说明:

最终多项式为{F(x)} = 4x^{3}+6x^{2}+7x

示例2

输入:

1
3
2 8
3 6
2 4

输出:

2

说明:

最终多项式为{F(x)} = 6x^{3}+12x^{2}

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 1818ms, 内存消耗: 21016K, 提交时间: 2022-03-24 09:11:45

T=int(input())
for i in range(T):
    n=int(input())
    prec={}
    for j in range(n):
        z,fi=map(int,input().split())
        if z in prec:
            prec[z]=prec[z]+fi
        else:
            prec[z]=fi
    cnt=0
    for v in prec.values():
        if v!=0:
            cnt+=1
    print(cnt)

C++14(g++5.4) 解法, 执行用时: 811ms, 内存消耗: 5220K, 提交时间: 2020-04-11 17:26:15

#include<bits/stdc++.h>
using namespace std;
map<int,int>M;
int T,n,x,y,ans,i;
int main(){
    cin>>T;
    while(T--){
        M.clear();
        cin>>n;
        while(n--) cin>>x>>y,M[x]+=y;
        ans=0;
        for(auto it:M) ans+=(it.second!=0);
        cout<<ans<<endl;
    }
}

C++(clang++ 11.0.1) 解法, 执行用时: 577ms, 内存消耗: 5096K, 提交时间: 2023-07-29 10:17:12

#include<bits/stdc++.h>
using namespace std;
map<int,int>M;
int main()
{
	int T,n,x,y,ans,i;
	cin>>T;
	while(T--)
	{
		M.clear();
		cin>>n;
		while(n--)
			cin>>x>>y,M[x]+=y;
		ans=0;
		for(auto it:M)
			ans+=(it.second!=0);
		cout<<ans<<endl;
	}
}

上一题