社区讨论
myoj5109 81%求调
灌水区参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lojil1xh
- 此快照首次捕获于
- 2023/11/04 11:58 2 年前
- 此快照最后确认于
- 2023/11/04 14:23 2 年前
CPP
#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;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...