MyBatis-Source Code Analysis 5 Create SQLSession Dialogue

2023-01-06  

This time, you are supposed to find A+B where A and B are two polynomials.

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:
K   N 1   a N 1   N 2   a N 2   . . .   N K   a N K K \ N_1 \ a_{N_1} \ N_2 \ a_{N_2} \ … \ N_K \ a_{N_K} K N1 aN1 N2 aN2 ... NK aNK

where K K K is the number of nonzero terms in the polynomial, N i N_i Ni​​ and a N ​ i ( i = 1 , 2 , ⋯ , K ) a_{N_​i}(i=1,2,⋯,K) aNi(i=1,2,,K) are the exponents and coefficients, respectively. It is given that 1 ≤ K ≤ 10 , 0 ≤ N K < ⋯ < N 2 < N 1 ≤ 1000 1≤K≤10, 0≤N_K<⋯<N_2<N_1≤1000 1K10,0NK<<N2<N11000.

For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

2 1 2.4 0 3.2
2 2 1.5 1 0.5

3 2 1.5 1 2.9 0 3.2

#include <iostream>
using namespace std;

void do_union(double exponents_all[]);

int main()
{
    
	int n, exponents;
	double coefficients;
	double exponents_all[1001] = {
     0 };
	//int output_all[10];

	for (int i = 0; i < 2; i++) 
	{
    
		cin >> n;
		while (n != 0)
		{
    
			cin >> exponents >> coefficients;
			exponents_all[exponents] += coefficients;
			n--;
		}
	}
	do_union(exponents_all);
}

void do_union(double exponents_all[])
{
    
	int count = 0;
	for (int i = 1000; i >= 0; i--)
	{
    
		if (exponents_all[i] != 0)
			count++;
	}
	cout << count;
	for (int j = 1000; j >= 0; j--)
	{
    
		if (exponents_all[j] != 0)
			printf(" %d %.1f", j, exponents_all[j]);
	}
}

  • After my code was submitted, there was a sample that did not pass it, and I was very puzzled after deducting two points.
    • Since Chen Yueyu did not announce what the test was, according to my experience, there may be inputcoefficient 0The situation.
    • According to the title, he has no restrictionscoefficient 0

      The situation of, but for the sake of more concise the method, I amvoid do_union(double exponents_all[])Theforcycle jumps with a coefficient of 0.

    • I didn’t expect a more concise method for the time being, I would be wrong when it was wrong. If a friend can see the problem, please be positive
  • The above problem has been solved

source

Related Posts

linux often uses GDB shortcuts to complete

Following Telegram, we think that SEC will start BAIDU for these two projects

CSS Learning Case (16): Netease Cloud Music Navigation Bar

C ++ STATIC Detailed explanation and why non -CONST static variables need to be defined in the class.

MyBatis-Source Code Analysis 5 Create SQLSession Dialogue

Random Posts

IO Stream Copy Four ways Demojavahello

Ubuntu Install Lightweight Desktop

Engineering practice LFFD model test bug solution summary

gles3.0 Chinese API-GLDISABLEEXATTRIBARAY

Metal Basic Brief introduction and common component description