myoj5109 81%求调
  • 板块灌水区
  • 楼主willix
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/4 11:57
  • 上次更新2023/11/4 14:23:54
查看原帖
myoj5109 81%求调
520775
willix楼主2023/11/4 11:57
#include <bits/stdc++.h>
#define N int(1e9)+5
#define INF 0x3f3f3f3f
using namespace std;

int main () {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t;
	scanf("%d", &t);
	while(t--) {
		map<long long, long long, greater<long long>> mp;//first:指数 second:系数 
		long long c, n, m;
		scanf("%lld", &c);
		for(int i = 1;i <= c;i++) {
			scanf("%lld%lld", &n, &m);
			if(mp.find(m) == mp.end()) {
				mp[m]=n;
			} else{
				mp[m]+=n;
			}
		}
		bool flag=false;
		for(pair<long long, long long> p:mp) {
			if(p.second==0) continue;
			if(flag==false) {//如果没有输出 
				flag=true;
				if(p.first>1) {//如果指数>1 
					if(p.second==1) printf("x^%lld", p.first);
					else if(p.second==-1) printf("-x^%lld", p.first);
					else printf("%dx^%lld", p.second, p.first);
				}else if(p.first==0) {//如果指数为0 
					printf("%lld", p.second);
				}else{//如果指数为1 
					if(p.second==1) printf("x");
					else if(p.second==-1) printf("-x");
					else if(p.second>1) printf("%lldx", p.second);
					else printf("%lldx", p.second);
				}
				
			}else if(p.first>1) {//如果指数>1 
				if(p.second==1) printf("+x^%lld", p.first);
				else if(p.second==-1) printf("-x^%lld", p.first);
				else if(p.second>0) printf("+%lldx^%lld", p.second, p.first);
				else printf("%lldx^%lld", p.second, p.first);
			}else if(p.first==0) {//如果指数为0 
				if(p.second>0) printf("+%lld", p.second);
				else printf("%lld", p.second);
			}else{//如果指数为1 
				if(p.second==1) printf("+x");
				else if(p.second==-1) printf("-x");
				else if(p.second>1) printf("+%lldx", p.second);
				else printf("%lldx", p.second);
			}
		}
		if(flag==false) printf("0");
		printf("\n");
	}
	return 0;
}
2023/11/4 11:57
加载中...