#1. 【入门】熟悉一下Online Judge的环境(HeTao)

一定要看完!!才知道小学生写代码多么离谱!!

说明

请不要笑。用来适应环境的题目,自然比较简单些。 计算2个整数的和。这两个整数都在1到100之间。

输入格式

输入只有一行,包括2个整数a, b。之间用一个空格分开。

输出格式

输出只有一行(这意味着末尾有一个回车符号),包括1个整数。

样例

输入数据 1

1 2

输出数据 1

3

你以为平平无奇,但到现在才知道有人把写的多么离谱。 

由于这是一道适应环境的题,它只有一个样例,于是有人就打出这样的代码:

#include <iostream>
using namespace std;
int main()
{
    cout << 7;
    return 0;
}

STL:

#include <bits/stdc++.h>
using namespace std;
struct Plus
{
    int a,b;//定义一个结构体
};
stack<int> sta;//定义一个栈
int main()
{
    Plus c;//结构体变量
    cin >> c.a >> c.b;
    sta.push(c.a);//入栈
    sta.push(c.b);
    int s;
    s += sta.top();//输出栈顶元素
    sta.pop();//出栈
    s += sta.top();
    cout << s;//输出总和
    return 0;
}

DFS:

#include <bits/stdc++.h>
using namespace std;
int n = 2, a[5], s;
int dfs(int x, int sum) {
    if (x > n) return sum;
    int i = dfs(x + 1, sum);
    int j = dfs(x + 1, sum + a[x]);
    if (i == s) return i;
    if (j == s) return j;
    return -1;
}
int main() {
    for (int i = 1;i <= n; i++) scanf("%d", &a[i]), s += a[i];
    cout << dfs(1, 0) << endl;
    return 0;
}

Floyd:

#include <bits/stdc++.h>
using namespace std;
int d[5][5], n = 3;
int main() {
    int a, b; scanf("%d%d", &a, &b);
    memset(d, 0x3f, sizeof d);
    d[1][2] = a; d[2][3] = b;
    for (int k = 1;k <= n; k++)
        for (int i = 1;i <= n; i++)
            for (int j = 1;j <= n; j++)
                d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
    printf("%d\n", d[1][3]);
    return 0;
}

网络流:

#include<bits/stdc++.h>
using namespace std;
#define set(x) Set(x)
#define REP(i,j,k) for (int i=(j),_end_=(k);i<=_end_;++i)
#define DREP(i,j,k) for (int i=(j),_start_=(k);i>=_start_;--i)
#define mp make_pair
#define x first
#define y second
#define pb push_back
template<typename T> inline bool chkmin(T &a,const T &b){ return a > b ? a = b, 1 : 0; }
template<typename T> inline bool chkmax(T &a,const T &b){ return a < b ? a = b, 1 : 0; }
typedef long long LL;
typedef pair<int,int> node;
const int dmax = 1010, oo = 0x3f3f3f3f;
int n, m;
int a[dmax][dmax] , ans;
int d[dmax], e[dmax];
priority_queue <node> q;
inline bool operator >(node a,node b){ return a.y>b.y; }
bool p[dmax];
void Set(int x){ p[x] = 1; }
void unset(int x){ p[x] = 0; }
bool check(int x){ return x != 1 && x != n && !p[x] && e[x] > 0; }
void preflow(){
    e[1] = oo;
    d[1] = n - 1;
    q.push(mp(1, n - 1));
    set(1);
    while (!q.empty()) {
        bool flag = 1;
        int k = q.top().x;
        q.pop(), unset(k);
        DREP(i, n, 1)
        if ((d[k] == d[i] + 1 || k == 1) && a[k][i] > 0){
            flag = 0;
            int t = min(a[k][i], e[k]);
            e[k] -= t;
            a[k][i] -= t;
            e[i] += t;
            a[i][k] += t;
            if (check(i)) {
                q.push(mp(i, d[i]));
                set(i);
            }
            if (e[k] == 0) break;
        }
        if (flag) {
            d[k] = oo;
            REP(i, 1, n)
            if (a[k][i] > 0) chkmin(d[k], d[i] + 1);
        }
        if (check(k)) {
            q.push(mp(k, d[k]));
            set(k);
        }
    }
    ans = e[n];
}
int main() {
    n = 2, m = 2;
    int x, y;
    scanf("%d%d", &x, &y);
    a[1][2] += x + y;
    preflow();
    printf("%d\n", ans);
    return 0;
}

istreamistream_iteratoriterator:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <numeric>
#include<iterator>
using namespace std;
int main()
{
    istream_iterator<int> in(cin), eof;
    cout << accumulate(in, eof ,0) << endl;
    return 0;
}

O3:

#pragma GCC diagnostic error "-std=c++11"
#pragma GCC target("avx")
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include <bits/stdc++.h>
using namespace std;
int main() {
    int a, b; scanf("%d%d", &a, &b);
    printf("%d", a + b);
    return 0;
}

超时3176 ms

#include <algorithm>
//STL 通用算法
#include <bitset>
//STL 位集容器
#include <cctype>
//字符处理
#include <cerrno>
//定义错误码
#include <cfloat>
//浮点数处理
#include <ciso646>
//对应各种运算符的宏
#include <climits>
//定义各种数据类型最值的常量
#include <clocale>
//定义本地化函数
#include <cmath>
//定义数学函数
#include <complex>
//复数类
#include <csignal>
//信号机制支持
#include <csetjmp>
//异常处理支持
#include <cstdarg>
//不定参数列表支持
#include <cstddef>
//常用常量
#include <cstdio>
//定义输入/输出函数
#include <cstdlib>
//定义杂项函数及内存分配函数
#include <cstring>
//字符串处理
#include <ctime>
//定义关于时间的函数
#include <cwchar>
//宽字符处理及输入/输出
#include <cwctype>
//宽字符分类
#include <deque>
//STL 双端队列容器
#include <exception>
//异常处理类
#include <fstream>
//文件输入/输出
#include <functional>
//STL 定义运算函数(代替运算符)
#include <limits>
//定义各种数据类型最值常量
#include <list>
//STL 线性列表容器
#include <locale>
//本地化特定信息
#include <map>
//STL 映射容器
#include <memory>
//STL通过分配器进行的内存分配
#include <new>
//动态内存分配
#include <numeric>
//STL常用的数字操作
#include <iomanip>
//参数化输入/输出
#include <ios>
//基本输入/输出支持
#include <iosfwd>
//输入/输出系统使用的前置声明
#include <iostream>
//数据流输入/输出
#include <istream>
//基本输入流
#include <iterator>
//STL迭代器
#include <ostream>
//基本输出流
#include <queue>
//STL 队列容器
#include <set>
//STL 集合容器
#include <sstream>
//基于字符串的流
#include <stack>
//STL 堆栈容器
#include <stdexcept>
//标准异常类
#include <streambuf>
//底层输入/输出支持
#include <string>
//字符串类
#include <typeinfo>
//运行期间类型信息
#include <utility>
//STL 通用模板类
#include <valarray>
//对包含值的数组的操作
#include <vector>
//STL 动态数组容器
 
//头文件拖延编译时间(虽然不能拖延运行时间,但能拖一点编译时间也很不错了hh) 
using namespace std;
int main(){
    int a; int b; //不用int a, b;,拖延运行时间
    cin >> a >> b; //cin拖延运行时间
    int ans = 1 * 10000 / 10 / 10 / 10 / 10 * 5 * 2 / 10 - 1; //ans表达式拖延编译和运行时间
    for (int i = 1;i <= a; i++) ans += 5, ans -= 4; //拖延时间 
    for (int i = 1;i <= b; i++) ans += 5, ans -= 4; //拖延时间 
    ans = ans - ans + ans + ans - ans; //表达式拖延时间
    cout << ans << endl; //cout和多输出回车拖延时间 
    return 0;
}

模拟:

#include <bits/stdc++.h>
using namespace std;
int a, b;
int main() {
    scanf("%d%d", &a, &b); //人眼看见数据
    if (a == 0) {printf("%d", b); return 0;}  //大脑瞬间“打表”被老师发现了,血量减少50……
    if (b == 0) {printf("%d", a); return 0;}  //大脑瞬间“打表”被老师发现了,血量减少50……
    int f1 = 0, f2 = 0; //大脑申请了两个空间……(还好没炸掉)
    if (a < 0) f1 = 1;  //大脑正在判断,请勿打扰……
    if (b < 0) f2 = 1;  //大脑正在判断,请勿打扰……
    a = abs(a); b = abs(b);  //哇!大脑使用了去掉负号的大法!!!
    int ans = 0;   //大脑申请了一个空间
    if (f1) ans -= a;  //大脑正在艰难地判断着……
    //大脑指挥手拿起笔在草稿纸上划来划去……
    //大脑感到烦躁
    //眼睛看到老师转了一下身子,立刻反馈给大脑
    //大脑指挥手在计算器键盘上写下了算式……
    //眼睛看到答案,反馈给大脑,大脑立刻指挥手关掉了计算器……
    //眼睛看到老师转回来了
    else ans += a;  //大脑正在艰难地判断着……
    if (f2) ans -= b;//大脑正在艰难地判断着……
    //大脑指挥手拿起笔在草稿纸上划来划去……
    //大脑感到烦躁
    //眼睛看到老师转了一下身子,立刻反馈给大脑
    //大脑指挥手在计算器键盘上写下了算式……
    //眼睛看到答案,反馈给大脑,大脑立刻指挥手关掉了计算器……
    //眼睛看到老师转回来了
    else ans += b;//大脑正在艰难地判断着……
    //眼睛观察到老师正在身后冷冷地看着……
    //大脑感到紧张
    //大脑让身体不由自主地颤抖起来
    //大脑差点死机
    //大脑复活
    //立刻写下答案
    printf("%d", ans);
    //大脑又死机了……
    //耳朵听到老师在叫自己起来
    //大脑指挥身体起来了
    //开始下一题……(下一个数据)
    return 0;
}

背包:

#include <bits/stdc++.h>
using namespace std;
int n, m;
int f[20010], g[20010], q[20010];
int main() {
    n = m = 2;
    for (int i = 1; i <= n; i ++ ) {
        int v = 1, w, s = 1; scanf("%d", &w);
        memcpy(g, f, sizeof f);
        for (int j = 0; j < v; j ++ ) {
            int hh = 0, tt = -1;
            for (int k = j; k <= m; k += v) {
                if (hh <= tt && q[hh] < k - s * v) hh ++ ; //剔除超出长度元素
                if (hh <= tt) f[k] = max(f[k], g[q[hh]] + (k - q[hh]) / v * w); //更新当前答案
                while (hh <= tt && g[q[tt]] - (q[tt] - j) / v * w <= g[k] - (k - j) / v * w) tt -- ;
                //维持单调性
                //这里也可以这样写,更易理解
                //while (hh <= tt && g[q[tt]] <= g[k] - (k - q[tt]) / v * w) tt -- ;
                q[++tt] = k;
            } 
        }
    }
    printf("%d", f[m]);
    return 0;
}

特此声明,以上代码有一部分来自洛谷网站与CSDN,转载请附加。

前方高能:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int pow(int a,int b){//简单较慢的快速幂,但是很简单
    if(b==0)//递归边界之一:a^0=1(暂且不考虑a=0)
        return 1;
    if(b==1)//递归边界之二:a^1=a
        return a;
    if(b==2)//递归边界之三:a^2=a*a
        return a*a;
    if(b%2==0)//快速幂的核心递归部分:当2|b时,a^b=(a^(b/2))^2
        return pow(pow(a,b/2),2);
    else//递归部分:当b%2=1时,a^b=a^(b-1)*a
        return pow(a,b-1)*a;
}
struct integer
{
    short i[126];//四位一压,所以共有126*4=504位,不会爆
    bool pn;//我还考虑了符号......
    integer( ){//构造函数初始化
        int j;
        pn=false;
        for(j=0;j<126;j++)
            i[j]=0;
    }//这个应该都看得懂吧......
    void read( ){//成员函数负责读入
        int j,k,m=0,n=0;
        char ii[504]={0};
        bool zero=true;
        scanf("%s",ii);//读入
        if(ii[0]=='-')//正负处理
            pn=true;
        else
            pn=false;
        for(j=503;j>-1;j--)//处理绝对值
            if(ii[j]>0){//找到个位
                for(k=j;k>-1;k--)
                    if(ii[k]>='0' && ii[k]<='9')
                    {
                        n++;
                        i[m]+=pow(10,n-1)*(ii[k]-'0');//这一步最难懂,慢慢琢磨,想一想怎么往高插入
                        if(n==4){//四位一压,别过界
                            n=0;
                            m++;
                        }
                    }
                break;
            }
        for(j=0;j<126;j++)
            if(i[j]>0)
                zero=false;
        if(zero)
            pn=false;
        return;
    }
    void write( ){//成员函数负责输出
        int j,k,a,b,c,d;
        bool zero=true;
        for(j=0;j<126;j++)//分清楚0和-0是一码事
            if(i[j]>0)
                zero=false;
        if(zero)
            pn=false;
        if(pn)//负号
            putchar('-');
        for(j=125;j>-1;j--)//找到最高位
            if(i[j]>0)
            {
                cout<<i[j];//省略前导0
                for(k=j-1;k>-1;k--){//一定注意这里不能省略前导0!!!这也是为什么四位一压麻烦的原因之一
                    a=i[k]/1000;
                    b=i[k]/100%10;
                    c=i[k]/10%10;
                    d=i[k]%10;
                    putchar(a+'0');
                    putchar(b+'0');
                    putchar(c+'0');
                    putchar(d+'0');
                }
                return;
            }
        putchar('0');//如果自始至终都是0(不进循环,即本数为0),输出0
        return;
    }
    integer operator=(const int a){//把int型转化成integer自定义型
        int b,j,k;
        bool zero=true;
        b=a;//注意a是const类型,不可改变!
        if(a<0){//对负数的处理
            b=-b;
            pn=true;
        }
        else
            pn=false;
        for(j=0;j<126;j++){//想一想,为什么是10000不是10
            i[j]=b%10000;
            b/=10000;
            if(b==0){
                for(k=j+1;k<126;k++)
                    i[k]=0;
                break;
            }
        }
        for(j=0;j<126;j++)//还是那句话,分清楚0和-0是一码事
            if(i[j]>0)
                zero=false;
        if(zero)
            pn=false;
        return *this;
    }
    integer(int a){//重载运算符里最难懂的部分,注意一定要有这个(只要你有对赋值语句的重载最好都加上)
        *this=a;
    }
    integer operator+(const integer &a){//对加号的重载
        integer b;
        int j;
        bool zero=true;
        if(*this==0)//0加任何数,仍得这个数
            return a;
        else if(a==0)
            return *this;
        if(pn==a.pn){//同号两数相加,取相同的符号,并把绝对值相加
            b.pn=pn;
            for(j=0;j<125;j++){
                b.i[j]+=i[j]+a.i[j];
                b.i[j+1]+=b.i[j]/10000;//还是那个问题,想想为什么是10000不是10
                b.i[j]=b.i[j]%10000;
            }
            b.i[125]+=i[125]+a.i[125];//专防数组越界(即访问无效内存)
            b.i[j]=b.i[j]%10000;
            for(j=0;j<126;j++)//不多说了,你懂的
                if(b.i[j]>0)
                    zero=false;
            if(zero)
                b.pn=false;
            return b;
        }
        else{//异号两数相加,取绝对值较大数的符号,并把绝对值相减
            int tw=0;
            integer x,y;
            x.pn=false;
            y.pn=false;
            for(j=0;j<126;j++){
                x.i[j]=i[j];
                y.i[j]=a.i[j];
            }
            if(x>y){//判断哪个数的绝对值大
                b.pn=pn;
                for(j=0;j<126;j++){
                    b.i[j]=i[j]-a.i[j]-tw;
                    tw=0;
                    if(b.i[j]<0){
                        b.i[j]+=10000;
                        tw++;
                    }
                }
                for(j=0;j<126;j++)
                    if(b.i[j]>0)
                        zero=false;
                if(zero)
                    b.pn=false;
                return b;
            }
            else if(x<y){
                b.pn=a.pn;
                for(j=0;j<126;j++){
                    b.i[j]=a.i[j]-i[j]-tw;
                    tw=0;
                    if(b.i[j]<0){
                        b.i[j]+=10000;
                        tw++;
                    }
                }
                for(j=0;j<126;j++)
                    if(b.i[j]>0)
                        zero=false;
                if(zero)
                    b.pn=false;
                return b;
            }
            else{//互为相反数的两个数和为0
                b=0;
                for(j=0;j<126;j++)
                    if(i[j]>0)
                        zero=false;
                if(zero)
                    pn=false;
                return b;
            }
        }
    }
        bool operator>(const integer &a)const{//判断大小
        int j;
        if(pn && (!a.pn))//负数小于正数
            return false;
        else if((!pn) && a.pn)//正数大于负数
            return true;
        else if(pn){//两个负数比较,绝对值大的反而小
            for(j=125;j>-1;j--){
                if(i[j]<a.i[j])
                    return true;
                else if(i[j]>a.i[j])
                    return false;
            }
            return false;
        }
        else{//两个正数比较,绝对值大的就大
            for(j=125;j>-1;j--){
                if(i[j]>a.i[j])
                    return true;
                else if(i[j]<a.i[j])
                    return false;
            }
            return false;//相等返回false
        }
    }
    bool operator<(const integer &a)const{//小于即大于的完全相反
        return a>(*this);
    }
    bool operator==(const integer &a)const{//等于即既不大于又不小于
        return !(*this>a || *this<a);
    }
    bool operator>=(const integer &a)const{//大于等于即不小于
        return !(*this<a);
    }
    bool operator<=(const integer &a)const{//小于等于即不大于
        return !(*this>a);
    }
    bool operator!=(const integer &a)const{//不等于就是不等于嘛
        return !(*this==a);
    }
};
int main( )
{
    integer a,b,c;//剩下的简单易懂
    a.read( );
    b.read( );
    c=a+b;
    c.write( );
    return 0;
}

二分:

#include <bits/stdc++.h>
using namespace std;
int a, b;
int main() {
    scanf("%d%d", &a, &b);
    int l = 0, r = 200000000;
    while (l < r) {
        int mid = l + r >> 1;
        if (mid == a + b) {printf("%d\n", mid); return 0;}
        if (mid <  a + b) l = mid + 1;
        if (mid >  a + b) r = mid - 1;
    }
    cout << l << endl;
    return 0;
}

枚举:

#include <bits/stdc++.h>
using namespace std;
int a, b;
int main() {
    scanf("%d%d", &a, &b);
    for (int i = 0;i <= 200000000; i++) if (a + b == i) {printf("%d\n", i); break;}
    return 0;
}

SPFA:

#include <bits/stdc++.h>
using namespace std;
int a, b, n = 3;
int w[5][5], d[5], v[5];
queue<int> q;
void spfa() {
    memset(d, 0x3f, sizeof d);
    memset(v, 0, sizeof v);
    d[1] = 0, v[1] = 1;
    q.push(1);
    while (q.size()) {
        int x = q.front(); q.pop();
        v[x] = 0;
        for (int i = 1;i <= n; i++) {
//          if (w[x][i] == 0x3f) continue;
            if (d[i] > d[x] + w[x][i]) {
                d[i] = d[x] + w[x][i];
                if (!v[i]) q.push(i), v[i] = 1;
            }
        }
    }
}
int main() {
    scanf("%d%d", &a, &b);
    memset(w, 0x3f, sizeof w);
    w[1][2] = a; w[2][3] = b;
    spfa();
    printf("%d\n", d[3]);
    return 0;
}

高精

#include<bits/stdc++.h>
using namespace std;
string a0, b0;
int a[1005], b[1005];
int main(){
    cin >> a0 >> b0;
    int l1 = a0.size(), l2 = b0.size();
    for (int i = 0;i < l1; i++) a[l1 - i] = a0[i] - 48;
    for (int i = 0;i < l2; i++) b[l2 - i] = b0[i] - 48;
    l1 = max(l1, l2);
    for (int i = 1;i <= l1; i++) {
        a[i] += b[i];
        if (a[i] > 9) a[i + 1] += 1, a[i] %= 10;
    }
    if (a[max(l1, l2) + 1] > 0) l1++;
    for (int i = l1;i >= 1; i--) printf("%d", a[i]);
    return 0;
}

最小生成树之kruskal

#include <bits/stdc++.h>
using namespace std;
struct rec {
    int x, y, z;
} edge[5];
 
int fa[5], m = 2, ans = 0;
 
int get(int x) {
    if (x == fa[x]) return x;
    return fa[x] = get(fa[x]);
}
int cmp(rec a, rec b) { return a.z < b.z; }
 
int main() {
    int a, b; scanf("%d%d", &a, &b);
    edge[1] = (rec){1, 2, a};
    edge[2] = (rec){2, 3, b};
    for (int i = 1;i <= m + 1; i++) fa[i] = i;
    sort(edge + 1, edge + 1 + m, cmp);
    for (int i = 1;i <= m; i++) {
        int x = get(edge[i].x);
        int y = get(edge[i].y);
        if (x == y) continue;
        fa[x] = y;
        ans += edge[i].z;
    }
    printf("%d\n", ans);
    return 0;
}

最小生成树之prim

#include <bits/stdc++.h>
using namespace std;
int w[5][5], d[5], n = 3, ans, v[5];
 
void prim() {
    memset(d, 0x3f, sizeof d);
    memset(v, 0, sizeof v);
    d[1] = 0;
    for (int i = 1;i < n; i++) {
        int x = 0;
        for (int j = 1;j <= n; j++)
            if (!v[j] && (x == 0 || d[j] < d[x])) x = j;
        v[x] = 1;
        for (int y = 1;y <= n; y++)
            if (!v[y]) d[y] = min(d[y], w[x][y]);
    }
}
int main() {
    int a, b; scanf("%d%d", &a, &b);
    memset(w, 0x3f, sizeof w);
    w[1][2] = a; w[2][3] = b;
    prim();
    int ans = 0;
    for (int i = 2;i <= n; i++) ans += d[i];
    printf("%d\n", ans);
    return 0;
}

Bellman-Ford

#include <bits/stdc++.h>
using namespace std;
int dis[50], u[50], v[50], w[50], n, m;
void bellman(int start) {
    for (int i = 1;i <= n; i++) dis[i] = 0x3f3f3f3f;
    dis[start] = 0;
    for (int i = 1;i < n; i++)
        for (int j = 1;j <= m; j++)
            if (dis[v[j]] > dis[u[j]] + w[j]) dis[v[j]] = dis[u[j]] + w[j];
}
int main() {
    n = 3; m = 2;
    for (int i = 1;i <= m; i++) cin  >> w[i], u[i] = i, v[i] = i + 1;
    bellman(1);
    printf("%d\n", dis[3]);
    return 0;
}

超长警告

a,b = tuple(map(int, input().split(" ")))
if a == 1:
    if b == 1:
        print(2)
    if b == 2:
        print(3)
    if b == 3:
        print(4)
    if b == 4:
        print(5)
    if b == 5:
        print(6)
    if b == 6:
        print(7)
    if b == 7:
        print(8)
    if b == 8:
        print(9)
    if b == 9:
        print(10)
    if b == 10:
        print(11)
    if b == 11:
        print(12)
    if b == 12:
        print(13)
    if b == 13:
        print(14)
    if b == 14:
        print(15)
    if b == 15:
        print(16)
    if b == 16:
        print(17)
    if b == 17:
        print(18)
    if b == 18:
        print(19)
    if b == 19:
        print(20)
    if b == 20:
        print(21)
    if b == 21:
        print(22)
    if b == 22:
        print(23)
    if b == 23:
        print(24)
    if b == 24:
        print(25)
    if b == 25:
        print(26)
    if b == 26:
        print(27)
    if b == 27:
        print(28)
    if b == 28:
        print(29)
    if b == 29:
        print(30)
    if b == 30:
        print(31)
    if b == 31:
        print(32)
    if b == 32:
        print(33)
    if b == 33:
        print(34)
    if b == 34:
        print(35)
    if b == 35:
        print(36)
    if b == 36:
        print(37)
    if b == 37:
        print(38)
    if b == 38:
        print(39)
    if b == 39:
        print(40)
    if b == 40:
        print(41)
    if b == 41:
        print(42)
    if b == 42:
        print(43)
    if b == 43:
        print(44)
    if b == 44:
        print(45)
    if b == 45:
        print(46)
    if b == 46:
        print(47)
    if b == 47:
        print(48)
    if b == 48:
        print(49)
    if b == 49:
        print(50)
    if b == 50:
        print(51)
    if b == 51:
        print(52)
    if b == 52:
        print(53)
    if b == 53:
        print(54)
    if b == 54:
        print(55)
    if b == 55:
        print(56)
    if b == 56:
        print(57)
    if b == 57:
        print(58)
    if b == 58:
        print(59)
    if b == 59:
        print(60)
    if b == 60:
        print(61)
    if b == 61:
        print(62)
    if b == 62:
        print(63)
    if b == 63:
        print(64)
    if b == 64:
        print(65)
    if b == 65:
        print(66)
    if b == 66:
        print(67)
    if b == 67:
        print(68)
    if b == 68:
        print(69)
    if b == 69:
        print(70)
    if b == 70:
        print(71)
    if b == 71:
        print(72)
    if b == 72:
        print(73)
    if b == 73:
        print(74)
    if b == 74:
        print(75)
    if b == 75:
        print(76)
    if b == 76:
        print(77)
    if b == 77:
        print(78)
    if b == 78:
        print(79)
    if b == 79:
        print(80)
    if b == 80:
        print(81)
    if b == 81:
        print(82)
    if b == 82:
        print(83)
    if b == 83:
        print(84)
    if b == 84:
        print(85)
    if b == 85:
        print(86)
    if b == 86:
        print(87)
    if b == 87:
        print(88)
    if b == 88:
        print(89)
    if b == 89:
        print(90)
    if b == 90:
        print(91)
    if b == 91:
        print(92)
    if b == 92:
        print(93)
    if b == 93:
        print(94)
    if b == 94:
        print(95)
    if b == 95:
        print(96)
    if b == 96:
        print(97)
    if b == 97:
        print(98)
    if b == 98:
        print(99)
    if b == 99:
        print(100)
    if b == 100:
        print(101)
elif a == 2:
    if b == 1:
        print(3)
    if b == 2:
        print(4)
    if b == 3:
        print(5)
    if b == 4:
        print(6)
    if b == 5:
        print(7)
    if b == 6:
        print(8)
    if b == 7:
        print(9)
    if b == 8:
        print(10)
    if b == 9:
        print(11)
    if b == 10:
        print(12)
    if b == 11:
        print(13)
    if b == 12:
        print(14)
    if b == 13:
        print(15)
    if b == 14:
        print(16)
    if b == 15:
        print(17)
    if b == 16:
        print(18)
    if b == 17:
        print(19)
    if b == 18:
        print(20)
    if b == 19:
        print(21)
    if b == 20:
        print(22)
    if b == 21:
        print(23)
    if b == 22:
        print(24)
    if b == 23:
        print(25)
    if b == 24:
        print(26)
    if b == 25:
        print(27)
    if b == 26:
        print(28)
    if b == 27:
        print(29)
    if b == 28:
        print(30)
    if b == 29:
        print(31)
    if b == 30:
        print(32)
    if b == 31:
        print(33)
    if b == 32:
        print(34)
    if b == 33:
        print(35)
    if b == 34:
        print(36)
    if b == 35:
        print(37)
    if b == 36:
        print(38)
    if b == 37:
        print(39)
    if b == 38:
        print(40)
    if b == 39:
        print(41)
    if b == 40:
        print(42)
    if b == 41:
        print(43)
    if b == 42:
        print(44)
    if b == 43:
        print(45)
    if b == 44:
        print(46)
    if b == 45:
        print(47)
    if b == 46:
        print(48)
    if b == 47:
        print(49)
    if b == 48:
        print(50)
    if b == 49:
        print(51)
    if b == 50:
        print(52)
    if b == 51:
        print(53)
    if b == 52:
        print(54)
    if b == 53:
        print(55)
    if b == 54:
        print(56)
    if b == 55:
        print(57)
    if b == 56:
        print(58)
    if b == 57:
        print(59)
    if b == 58:
        print(60)
    if b == 59:
        print(61)
    if b == 60:
        print(62)
    if b == 61:
        print(63)
    if b == 62:
        print(64)
    if b == 63:
        print(65)
    if b == 64:
        print(66)
    if b == 65:
        print(67)
    if b == 66:
        print(68)
    if b == 67:
        print(69)
    if b == 68:
        print(70)
    if b == 69:
        print(71)
    if b == 70:
        print(72)
    if b == 71:
        print(73)
    if b == 72:
        print(74)
    if b == 73:
        print(75)
    if b == 74:
        print(76)
    if b == 75:
        print(77)
    if b == 76:
        print(78)
    if b == 77:
        print(79)
    if b == 78:
        print(80)
    if b == 79:
        print(81)
    if b == 80:
        print(82)
    if b == 81:
        print(83)
    if b == 82:
        print(84)
    if b == 83:
        print(85)
    if b == 84:
        print(86)
    if b == 85:
        print(87)
    if b == 86:
        print(88)
    if b == 87:
        print(89)
    if b == 88:
        print(90)
    if b == 89:
        print(91)
    if b == 90:
        print(92)
    if b == 91:
        print(93)
    if b == 92:
        print(94)
    if b == 93:
        print(95)
    if b == 94:
        print(96)
    if b == 95:
        print(97)
    if b == 96:
        print(98)
    if b == 97:
        print(99)
    if b == 98:
        print(100)
    if b == 99:
        print(101)
    if b == 100:
        print(102)
else:
    print(a+b)  #写不动了(哭)

以下是本题真正的最短代码: python

print(7)

简简单单滴代码来净化一下

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

string addStrings(const string& num1, const string& num2) {
    int carry = 0;
    string sum;

    size_t len1 = num1.length();
    size_t len2 = num2.length();

    string a = len1 >= len2 ? num1 : num2;
    string b = len1 >= len2 ? num2 : num1;

    reverse(a.begin(), a.end());
    reverse(b.begin(), b.end());

    for (size_t i = 0; i < a.length(); i++) {
        int digitSum = (a[i] - '0') + carry;

        if (i < b.length()) {
            digitSum += (b[i] - '0');
        }

        sum.push_back((digitSum % 10) + '0');
        carry = digitSum / 10;
    }

    if (carry > 0) {
        sum.push_back(carry + '0');
    }

    reverse(sum.begin(), sum.end());

    return sum;
}

int main() {
    string num1, num2;
    cin >> num1 >> num2;

    string sum = addStrings(num1, num2);

    cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;

    return 0;
}

够了,够了,别看了,我电脑都快报废了

我数了一下还有至少四十八个离谱代码大家可以前往网址题解 - 【入门】熟悉一下Online Judge的环境 - 核OJ_核桃编程 (hetao101.com)

多看看

我手都快报废了大家给我点个赞吧

本期文章就到这里,再见。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值