zoukankan      html  css  js  c++  java
  • [对拍模板]

    今天又是军训(难受)

    照例晚上跑到了电脑室

    今天学了对拍

    记录一下

    先随便口胡了一个题: 求一个数列中连续的数的最大和

    先写一个暴力程序(要保证正确)

    #include<iostream>
    #include<cstdio>
    using namespace std;
    long long  n,a[100000];
    long long  ans,sum[100000];
    int main()
    {
        freopen("QWQ.in","r",stdin);
        freopen("QWQ.ans","w",stdout);
        cin >> n ;
        for(long long i = 1;i <= n; i++) cin>>a[i],sum[i] = sum[i-1] + a[i];
        for(long long i = 1; i<= n; i++)
        for(long long j = i-1; j >= 0; j--)
        {
            ans = max(ans,sum[i] - sum[j]);
        }
        cout << ans;
    }
    ans

    再写一个算法程序(验证正确性)

    #include<iostream>
    #include<cstdio>
    using namespace std;
    long long minn=0x3f3f3f,n,a[1000000],sum[1000000],ans;
    int main()
    {
       freopen("QWQ.in","r",stdin);
       freopen("QWQ.out","w",stdout);
       scanf("%lld",&n);
       for(long long i = 1; i <= n ; i++)
       {
           scanf("%lld",&a[i]);
           sum[i] = sum[i-1] + a[i];    
       }    
       for(long long i = 0; i <= n; i++)
       {
              minn = min(minn,sum[i]);
              ans = max(ans,sum[i]-minn);
       }
       cout << ans;
    } 
    want

    再写一个生成数据的程序 用rand()来生成

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        srand(time(0));
        freopen("QWQ.in","w",stdout);
        long long t = rand()%1000; 
        cout << t << endl;
        for(long long i = 1;i <= t ; i++)
        {
            if(rand()%1000<=t )printf("%d ",rand());
            else printf("%d ",-rand());    //生成负数的一个小技巧 
        } 
        return 0;
    }
    data

    再写一个用来比对的程序

    #include<iostream>
    #include<cstdio>
    #include<windows.h>
    using namespace std;
    int main()
    {
       int t = 0;
       while(1)
       {
           system("data");//运行生成数据程序 
           system("ans");//运行暴力 
        system("want");//运行算法程序 
        if(system("fc QWQ.ans QWQ.out")) break;//比对 (fc是比较两个文件的意思)    
        cout<<endl<<++t;
       }    
        printf("error!");
        return 0;   
    } 
    test

    然后运行就可以了

    对拍还是很有用的一个技巧的

    比赛场上很重要

  • 相关阅读:
    机器学习算法优秀性:衡量指标
    MapReduce and Pregel
    K-d 树对聚类算法进行预处理
    论文中的算法描述 By 薛磊
    批判性思维《描述性假设》
    论文中的数学符号使用
    HOOK别人的dylib(HOOK cydia里面的插件)
    关于某听书软件的开通20年会员的心路历程
    Aspects 源码学习
    Undefined symbols for architecture arm64(其cpu架构)
  • 原文地址:https://www.cnblogs.com/dixiao/p/13556172.html
Copyright © 2011-2022 走看看