关于A+B Problem的各种奇葩做法(欢迎补充)
  • 板块灌水区
  • 楼主FridayDZH
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/11/6 19:55
  • 上次更新2023/11/6 21:27:42
查看原帖
关于A+B Problem的各种奇葩做法(欢迎补充)
1048725
FridayDZH楼主2023/11/6 19:55
  1. 正常做法:
#include <iostream>
using namespace std;
int main(){
    int a,b;
    cin >> a >> b;
    cout << a+b << endl;
    return 0;
}
  1. 十分"简洁"的做法:
#include<bits/stdc++.h>
using namespace std;
const int N=5;
const int inf=0x3f3f3f3f;
long long a,b,n=3;
long long x[N][N],d[N];
long long sum[N]; 
bool vis[N];
void dijkstra(){
	memset(d,inf,sizeof(d));
	d[1]=0;
	for(int i=1;i<n;i++){
		long long t=0;
		for(int j=1;j<=n;j++)
			if(!vis[j]&&(t==0||d[j]<d[t]))
				t=j;
		vis[t]=true;
		for(int j=1;j<=n;j++)
			d[j]=min(d[j],d[t]+x[t][j]);
	}
}
int main(){
	scanf("%lld%lld",&a,&b); 
	memset(x,inf,sizeof(x)); 
	x[1][2]=a;
	x[2][n]=b;
	dijkstra();
	for(int i=1;i<=n;i++)
		sum[i]=sum[i-1]+d[i];
	if(sum[2]>=0)
		sum[2]=0-sum[2];
	else
		sum[2]=abs(sum[2]);
	printf("%lld",sum[3]+sum[2]);
  	return 0;
}
  1. 能AC(仅限C++ 20)但变量命名非法的做法:
#include<iostream>
using namespace std;
int main(){
    int 甲, 乙;
    cin >> 甲;
    cin >> 乙;
    cout << 甲 + 乙;
    return 0;
}
2023/11/6 19:55
加载中...