赴杭府师范庠序应信息学奥试,信笔记之。

· · 生活·游记

绝密☆启封前

日负无穷

前夜卧即寐,睁目已晨。

略言,估分八十九至九十二。

至考场,封条森严,甚异于昔。闻旧岁有考点因禁如厕被劾,故今岁不得设场,可叹。

开考铃响足十秒!展甲题,见无符整型(去岁有符,来岁岂无符长整乎?)。丁题失察,痛损二分。

前十五题中平,略难于旧岁,犹可措手。答毕时已十刻。

补全程序其一较去岁稍难,然陷阱浅显,末界之判当不计。补全程序其二目眩,误辨限界之性,损四分半(廿四、廿五题)。是题之难,实超去岁。

及见补全程序其三,竟为最长升列之模板,数字版尤简,殊无新意。时方十又三刻。

补全程序颇具甄别。其一几近送分,然困于审题,耗一刻方解。其二殊难,竟涉函式交互,贪心之证费一刻半,摩尔投票诚艰深!其释文鄙陋,致四十题误择。时已十一又二刻。

末刻查得二错,挽五分。改毕时考官已欲收卷。

终估百分减诸失,得八十九至九十二。

补:各地估分微异。

若此分不过,当封笔归隐。

顺讥CCF双卅三题之失,印卷前竟不覆检耶?

尔无卵哉!

GESP超常,八级九分免试。

午后续修培优课,闻人言“乙组易于丙组”,惑而不解。

补GESP游记:前题皆易,一时毕。编程首题双ST表维之,次题初以搜法败,忽忆换根可记化,五分鐘成码,调两刻乃AC。幸CCF未卡菊图,拜谢!

估分八十九。

后数日查分,竟得九十。

前日

申时请假归,食毕疾驰车站。

车中遍温旧学,温毕恰至。

至杭师大门探考场,返宿。(客舍夜食甚佳)夜半心平无波,然寐而不酣,若见浮生万千...

当日

补:丙组总码量不敌乙组甲题。

补:赛后知若预排序,可得满分。此題当评蓝,堪称史上最难乙二。

  #include<bits/stdc++.h>
using namespace std;
const int N=1e4+10,M=1e6+10;
struct node{
    int u;
    int v;
    long long w;
};
node b[M];
long long c[30];
long long a[30][N];
int f[N];
vector<node>v;
bool cmp(node A,node B){
    return A.w<B.w; 
}
int find(int id){
    return f[id]==id?id:f[id]=find(f[id]);
}
int n,m,k;
int t[30];
vector<node>e;
long long ans=1e18;
void check(){
    long long cnt=0;
    for(int i=1;i<=k;i++)if(t[i]){
        cnt+=c[i];
    }
    for(int i=1;i<=n+k;i++)f[i]=i;
    for(node to:e)if((to.u<=n || t[to.u-n]) && ((to.v<=n || t[to.v-n]))){
        int fa=find(to.u);
        int fb=find(to.v);
        if(fa!=fb){
            f[fa]=fb;
            //cout<<to.u<<" "<<to.v<<"\n";
            cnt+=to.w;
        }
    }
    //cout<<"\n";
    ans=min(ans,cnt);
    return;
}
void dfs(int len){
    if(len==k+1){
        check();
        return;
    }
    t[len]=0;
    dfs(len+1);
    t[len]=1;
    dfs(len+1);
}
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=m;i++){
        cin>>b[i].u>>b[i].v>>b[i].w;
    }
    sort(b+1,b+m+1,cmp); 
    for(int i=1;i<=k;i++){
        cin>>c[i];
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++)f[i]=i;
    for(int i=1;i<=m;i++){
        int fa=find(b[i].u);
        int fb=find(b[i].v);
        if(fa!=fb){
            f[fa]=fb;
            e.push_back({b[i].u,b[i].v,b[i].w});
        }
    }
    for(int i=1;i<=k;i++){
        for(int j=1;j<=n;j++){
            e.push_back({n+i,j,a[i][j]});
        }
    }
    sort(e.begin(),e.end(),cmp);
    dfs(1);
    cout<<ans<<"\n";
    return 0;
} 

余三刻,急作暴力。丙题初未解,先取丁题八分。细读丙题,方知仅可一转,时迫乃写十分之法。毕余五分,查文卷而终。

初觉今生尽毁,后见众皆如是乃安。

自估百分、六四、十、八,合百八二。

与 wzb 论乙题,彼未察第二性,惜哉。

归途单车链堕(赛时阳寿尽矣)。

论战酣忘携身份文牒,牒传教练群,为 zhr 赞“稚趣”,嘻。

日后

丙组成绩:四百分。拜谢 CCF 未卡常。

乙组成绩:二百十三分。可勾七级否?

此季自 \sqrt{4}\sqrt{7} 矣。

咕咕复咕咕。