关于A+B的各种奇葩做法(C++)
  • 板块灌水区
  • 楼主FridayDZH
  • 当前回复13
  • 已保存回复15
  • 发布时间2023/11/5 21:58
  • 上次更新2023/11/5 22:34:14
查看原帖
关于A+B的各种奇葩做法(C++)
1048725
FridayDZH楼主2023/11/5 21:58
  1. 正常做法:
#include<stdio.h>
int a,b;
int main(){
    scanf("%d%d",&a,&b);
    printf("%d",a+b);
}
  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/5 21:58
加载中...