[一天至少一题直到ICPC开赛022]讲一些竞程的小技巧(1/3)

概要

最近社团蛮多新人加入,然后有遇到一些问题,想说来跟大家分享一些小技巧

送出后的反馈

AC 程式码通过测值WA 程式码在某个测值(test case)中出现错误答案(有些会写在哪里一个test出错,例如WA on test2)TLE 程式码超过限制时间。通常是解法过于暴力,导致无法在限制时间内通过MLE 程式码超过记忆体限制,童常不要乱搞应该不太会遇到CE 编译错误,没有按照该程式的规矩钻写RE 执行时错误,通常为记忆体配置错误,像是超过阵列範围

P.S. 题目里给的sample 通常与送出时测试的测值会不同,通过 sample 不代表一定会 AC !

解题常见的输入

通常题目会有几种方法来输入

test case :

题目会先讲先输入t,就是执行t次
接下来会输入n,接下来的测值数量
通常,sample架构会长这样:

t
n a1 a2 .....an
n2 b1 b2 .....bn2

....总计有t排(不包含t那行)

程式码:

#include<iostream>using namespace std;int main(){    int t;    cin>>t;    while(t--)//执行t次    {        int n;        cin>>n;        vector<int> v(n);//建立一个 含有n数量的阵列        for(int i=0;i<n;i++)            cin>>v[i];    }}
直到EOF

题目没有讲说什么时候结束
放在同个sample里(如果要你输入一次就结束,那会有sample1 、 sample2 每个sample 都只会有一项测值)
sample input架构大概长这样:

a b
d e
f g

output :

a1
b1
c1

程式码:

#include<iostream>using namespace std;int main(){    int a,b;        while(cin>>a>>b)//当友直输入时就无限执行,直到程式结束(EOF)    {        //你的程式码    }}
输入 0 结束

sample 有一长串,跟EOF型很像但结尾遇到 0 时结束
sample input架构大概长这样:

a b
a2 b2
a3 b3
0

程式码:

#include<iostream>using namespace std;int main(){    int a,b;        while(1)//死迴圈    {        cin>>a>>b        if(a==0)//当输入 0 时,结束迴圈        {            break;        }        //你的程式码    }}

一些解题的小技巧

除了题目给的测值,尽量自己想几个测值

因为有些题目给的sample会误导你往错误的方向想

画图

有可能成为解题关键!?

真的解不出来就先休息一下

总比直接抄别人的code好


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章