C++ int128

C++ int128

**

快速地调用,一般的方法

**

还可以,不过并不是最大的,有时还差点意思,相当于longlong强化版

#include<iostream>
using in = signed long long int;

int main(){
    
    
	
	int n,m;
	std::cin >> n >> m;
	
}

解题时使用的int128,避免了使用高精度的高代码强度

#include <bits/stdc++.h>
using in = __int128;
void print(__int128 a) {
    
    

	if(a<0) {
    
    
		std::cout<<"-";
		a=-a;
	}
	if(a>9) {
    
    
		print(a/10);
	}
	putchar(a%10+'0');

}

int main() {
    
    
	
	int n,m;
	std::cin >> n >> m;

	in ans = 0;
	in f[m][m];
	int now[m];

	for(int i = 0; i<n ; i++) {
    
    
		memset(f,0,sizeof(f));
		for(int j = 0; j<m ; j++) {
    
    
			std::cin >> now[j];
			f[j][j] = now[j];
		}
		for (int h = 1; h < m; h++) {
    
    
			for (int left = 0; left < m - h; left++) {
    
    
				int right = left + h;
				in k1 = f[left + 1][right] * 2 + now[left];
				in k2 = f[left][right - 1] * 2 + now[right];
				f[left][right] = std::max(k1, k2);
			}
		}
		ans += f[0][m - 1];
	}
	ans *= 2;
	print(ans);
	std::cout<<std::endl;
	return 0;
}

int128模板如下
需要手写输入输出,相当于C++内测的一种数据类型
max int128:
±85070591730234615865843651857942052864
约为10^38
足够解决大部分高精度,大数据问题

#include <bits/stdc++.h>
using in = __int128;
//max int128:
//85070591730234615865843651857942052864
//10^38
//+ 38 win ;; +- 76 win
void print(__int128 a) {
    
    

	if(a<0) {
    
    
		std::cout<<"-";
		a=-a;
	}
	if(a>9) {
    
    
		print(a/10);
	}
	putchar(a%10+'0');

}

int main() {
    
    

	long long n;
	std::cin >> n;
	
	in f[n];
	in ans;

	f[0] = 1;
	
	std::cout<<"AAAAAAAAAAA"<<std::endl;
	
	for(int i = 1; i<n ; i++) {
    
    
//		memset(f,0,sizeof(f));
		ans = f[i-1]*2;
		
		f[i] = ans;
		std::cout<<i<<std::endl;
		print(ans);
		std::cout<<std::endl;
	}
	
	std::cout<<"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"<<std::endl;
	
	for(int i = n-1; i>0 ; i--) {
    
    
		ans = f[i] / 2;
		
		f[i-1] = ans;
		std::cout<<i<<std::endl;
		print(ans);
		std::cout<<std::endl;
	}
	
	std::cout<<"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"<<std::endl;
	f[0] = 1;
	for(int i = n-1; i>0 ; i--) {
    
    
		ans = -f[i-1]*2;
		
		f[i] = ans;
		std::cout<<i<<std::endl;
		print(ans);
		std::cout<<std::endl;
	}
	
}

猜你喜欢

转载自blog.csdn.net/weixin_52559308/article/details/121457988