0%

前言

當初我同學有在架設我們學校的線上評測系統,而一開始我們的系統非常不穩定,因此,他想到可以寫離線的程式答題系統緩解我們上課的需求。而我看到這個系統,我覺得這是一個不錯的想法,並依此加以改良,新增 TLE 判定和超時時會強制停止,並且可以跨平台使用。

閱讀全文 »

源起 & 說明

起心動念編纂這本「講義」的時候,正值我準備 APCS 考試期間,當時也正在就讀高中,考量到時間上的不足,我邀請 3 個人一起參與,所以,作者總共有 4 個人,而本篇貼文所摘錄的是我所創作的部分。

閱讀全文 »

想法

由題目可知,必須由甲開始,甲結束。因此,取的次數是奇數。我們可以將第一個甲獨立判斷,後面乙甲都綁定在一起。於是,可以得到。
\(dp_n = dp_{n-2} + 2 \times dp_{n-3} + dp_{n-4}\)

閱讀全文 »

Introduction

程式撰寫時,若寫得很亂或是很醜,極有可能導致無法找到錯誤的情況發生。在多人協作以及詢問他人問題時,好的程式碼風格可以使他人更快了解你在寫什麼。進而快速解決問題。

閱讀全文 »

先來一個

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<bits/stdc++.h>
using namespace std;

#define ALL(v) v.begin(),v.end()
using ll=long long;

unsigned seed=chrono::steady_clock::now().time_since_epoch().count();
mt19937_64 rng=mt19937_64(seed);

long long RandomNumber(long long a,long long b){
uniform_int_distribution<long long> dis(a,b);
return dis(rng);
}

long long RandomNumber(long long n){
return RandomNumber(1,n);
}

void SubTesk1(int a){
string fileName=to_string(a);

ofstream ques(fileName+".in"),ans(fileName+".out");

int n=RandomNumber(90000,100000);
ques<<n<<"\n";

vector<int> LIS;
for(int i=0;i<n;++i){
int a=RandomNumber(100000000);
ques<<a<<" ";

if(LIS.empty() || lower_bound(ALL(LIS),a)==LIS.end()){
LIS.emplace_back(a);
}else{
int pos=lower_bound(ALL(LIS),a)-LIS.begin();
LIS[pos]=a;
}
}

ans<<LIS.size();

cout<<a<<endl;
}

#define REP(i,a,b) for(int i=(a);i<(b);++i)
int main(){
ios::sync_with_stdio(0);cin.tie(0);

clock_t startTime=clock();
REP(i,1,20+1){
SubTesk1(i);
}
clock_t endTime=clock();

cout<<double(endTime-startTime)/1000<<"\n";
}
閱讀全文 »

前言

最近我同學有在架設我們學校的線上評測系統,而一開始我們的系統非常不穩定,因此,他想到可以寫離線的程式答題系統緩解我們上課的需求。而我看到這個系統,我覺得這是一個不錯的想法,並依此加以改良,新增 TLE 判定和超時時會強制停止,並且可以跨平台使用。

閱讀全文 »