团体程序设计天梯赛-练习集 - L2-018 多项式A除以B(25 分)

简介: 团体程序设计天梯赛-练习集 - L2-018 多项式A除以B(25 分)

题目链接:点击打开链接

题目大意:略。

解题思路:见注释,注意最后精度必须严格控制。

AC 代码

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
constintmaxn=1e4+10;
structnode{
inte;
doubled;
}nds[maxn], tnds[maxn], rnds[maxn];
set<int,greater<int>>st;
intmain()
{
intn,m,e,te;
doubled,td;
scanf("%d",&n);
for(inti=0;i<n;i++)
    {
scanf("%d%lf",&e,&d);
st.insert(e);
tnds[e].e=e;
tnds[e].d=d;
    }
scanf("%d",&m);
for(inti=0;i<m;i++) scanf("%d%lf",&nds[i].e,&nds[i].d);
intl=0, k=0;
while(1)
    {
autoit=st.begin();
e=*it;
if(e<nds[0].e) break; // 如果被除项最高次小于除项的最高次 breakte=tnds[e].e, td=tnds[e].d;
rnds[l].e=(te-=nds[0].e); // 记录商rnds[l++].d=(td/=nds[0].d);
for(inti=0;i<m;i++) // 更新被除项(最终为余项)        {
e=nds[i].e+te;
d=nds[i].d*td;
tnds[e].d-=d;
tnds[e].e=e;
st.insert(e);
        }
st.erase(st.begin()); // 每次消除最大    }
for(inti=0;i<l;i++) if(fabs(rnds[i].d)>4*1e-2) k++;
if(k==0) puts("0 0 0.0");
else    {
printf("%d",k);
for(inti=0;i<l;i++)
if(fabs(rnds[i].d)>4*1e-2) printf(" %d %.1f",rnds[i].e,rnds[i].d);
puts("");
    }
l=0;
for(inti=nds[0].e-1;i>=0;i--) if(fabs(tnds[i].d)>4*1e-2) l++;
if(l==0){puts("0 0 0.0"); return0;}
printf("%d",l);
for(inti=nds[0].e-1;i>=0;i--)
if(fabs(tnds[i].d)>4*1e-2) printf(" %d %.1f",tnds[i].e,tnds[i].d);
puts("");
return0;
}
目录
相关文章
|
6月前
|
搜索推荐 算法 C++
蓝桥杯分糖果、最小化战斗力差距、小蓝零花钱
这是一个关于算法问题的集合,包括三个不同的任务: 1. **分糖果**:肖恩有不同种类的糖果要分给学生,目标是使得到糖果字符串的字典序最大且尽量小。给定糖果种类数和一个初始字符串,输出能达到的最小字典序的最大值。 2. **最小化战斗力差距**:小蓝需要将队员分为两组,每组战斗力差距最小。给定队员数量和战斗力值,找出最小的战斗力差距。 3. **小蓝的零花钱**:小蓝要在序列中分割偶数和奇数,每次分割代价是两端元素差的绝对值。目标是在预算内确定最多能进行多少次这样的分割。 每个问题都提供了输入输出示例和相应的C++代码片段来解决这些问题。
|
测试技术 C语言 C++
PTA团体程序设计天梯赛-练习集:L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
221 0
|
C语言 C++
PTA团体程序设计天梯赛-练习集: L1-050 倒数第N个字符串 ( 15分 )
给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤105)。 输出格式: 在一行中输出对应序列倒数第 N 个字符串。题目保证这个字符串是存在的。 输入样例:
179 0
|
Java C语言 C++
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
【蓝桥杯基础题】2020年省赛填空题—既约分数
|
安全
L3-009 长城 (30 分)(数学知识)
L3-009 长城 (30 分)(数学知识)
226 0
L3-009 长城 (30 分)(数学知识)
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)
95 0
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)
团体程序设计天梯赛-练习集 - L2-013 红色警报(25 分)
团体程序设计天梯赛-练习集 - L2-013 红色警报(25 分)
128 0
团体程序设计天梯赛-练习集 - L2-016 愿天下有情人都是失散多年的兄妹(25 分)
团体程序设计天梯赛-练习集 - L2-016 愿天下有情人都是失散多年的兄妹(25 分)
181 0
团体程序设计天梯赛-练习集 - L3-008 喊山(30 分)
团体程序设计天梯赛-练习集 - L3-008 喊山(30 分)
123 0
团体程序设计天梯赛-练习集 - L3-011 直捣黄龙(30 分)
团体程序设计天梯赛-练习集 - L3-011 直捣黄龙(30 分)
127 0
下一篇
DataWorks