CSP-J/S2019 遊記

本 篇 博 客 已 停 止 更 新

 

先佔個坑,防鴿html

萬一過不了初賽怎麼辦(歡迎山前劉明)c++

流水帳太多 湊合看吧瀏覽器

Day -91學習

http://www.javashuo.com/article/p-oqslddrf-gc.html網站

http://www.javashuo.com/article/p-kmiyjtyc-gb.htmlspa

「***懼怕了,***嚇傻了,***傳瘋了」code

暑期集訓的最後一天htm

正當我瘋狂趕暑假做業prepare to do something excited時,CCF忽然搞了個大新聞:blog

「因爲某種緣由,由CCF主辦的全國青少年信息學奧林匹克聯賽NOIP(普及組及提升組)從2019起暫停。http://www.noi.cn/newsview.html?id=932&hash=72F731排序

我*,要退役了。

Day -84

「非專業級軟件能力認證」橫空出世 http://www.noi.cn/newsview.html?id=938&hash=1A1F26

「不建議以功利的心態參加CSP認證」,你懂的。

啥也別說了,準備報名

Day -42

開始集訓,準備CSP-J1/S1

據說BJ要全面機試,題型全爲單選題,excited!

Day -30

BJ第一輪認證的考點安排出爐 上下午考點居然相距十幾km(按考號排序,原本能安排在一個地方的,結果前面有幾我的亂入。。。)然而我還不是最慘的

Day -28

複習了一夜模擬題,才發現過去一年啥都沒學

Day -27

上午在八十中考S1

路上耽誤了一點時間,跑到隔壁運動會了,匆匆忙忙跑進考場,已經09:26,立刻就開始了

拿到密碼條(監考老師水平極差,居然給我發錯了)

我*,網站登錄不上去啊(筆試大 法 好)這就是China Cheating Foundation?設想一下明年全國機試的盛況

Chrome、Firefox瀏覽器來回刷,09:37終於登錄進入網頁,開始作題

題目難度還行,自我感受能及格

機試延長了1個小時,最晚12:30交卷,12:00能夠提早交卷離開;提交的時候又卡了好幾分鐘

下午在rdfz考J1,直接在圖書館閱覽室裏考

網不錯,題很水,八九不離十

Day -22

BJ機試效率就是高,立刻就出成績了

入門組得了84分,提升組61.5分,分數不高,能過就行

算上B類名額,咱們機房差很少都能過了

據說JX只要不缺考不爆零就能進第二輪?啊哈哈哈

Day -20

全機房被教練請去喝茶 仍是那個永恆的主題:我太蔡了

上午頹了幾分鐘天文競賽,繼續回機房集訓

Day -6

期中考後涼涼祭 好在CSP比NOIP晚一週 還有喘息的機會

今天體驗了NOI Linux,又來了一套模擬題,*,這不該該了,KMP都不會了,CSP-S2爆零預警

Day -4

CJX、SZM、CZD、SAJ、ZGYM等若干同窗今起享受停課備賽高規格待遇

Day -3

教練一番意味深長的訓話。。。

Day 0

下午5時許,學校機房正式實施清場,CSP-J2/S2前最後一次訓練到此結束,機房同窗互相送別

我又大概看了幾眼模板就準備上考場了

Day 1

上午S2 D1,早早來到考場

試題密碼:Ren2Zhen0Si1Kao9?(認真思考2019)

T1,格雷碼(code),大概是CCF塞分題,掃了一眼,根據直覺思惟,是一道基本的找規律題目

看到數據範圍,提升警戒,使用了long long,測過了「大樣例」就直接過了,無奈道高一尺魔高一丈(蛤?2^64爆LL了?基本學習經驗又不熟了)

#include<bits/stdc++.h>
using namespace std;
long long a[65];
int main()
{
	//freopen("code.in","r",stdin);
	//freopen("code.out","w",stdout);
	int n;
	long long k;
	scanf("%d %lld",&n,&k);
	long long x=2;
	for(int i=1;i<=n;i++)
	{
		x<<=1;
		if(k%x>=x/4 && k%x<x/4*3) a[i]=1;
	}
	for(int i=n;i>=1;i--) printf("%d",a[i]);
	return 0;
}

「指望」得分:100

T2,括號樹(brackets),樹上的括號匹配,不會正解,只會玄學暴力

#include<bits/stdc++.h>
using namespace std;
char a[500005],b[500005];
int f[500005];
int x[500005],y[500005];
int main()
{
	//freopen("brackets.in","r",stdin);
	//freopen("brackets.out","w",stdout);
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=2;i<=n;i++) scanf("%d",&f[i]);
	int res;
	f[1]=0;
	for(int i=1;i<=n;i++)
	{
		memset(b,0,sizeof(b));
		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));
		int j=i,k=0,ans=0;
		while(j)
		{
			b[++k]=a[j];
			x[k]=x[k-1],y[k]=y[k-1];
			if(a[j]==')') x[k]++;
			if(a[j]=='(') y[k]++;
			j=f[j];
		}
		for(int l=1;l<k;l++)
		{
			for(int r=l+1;r<=k;r++)
			{
				if(x[r]-x[l-1]!=y[r]-y[l-1]) continue;
				bool xy=1;
				for(int p=l;p<=r;p++)
				{
					if(x[p]-x[l-1]<y[p]-y[l-1])
					{
						xy=0;
						break;
					}
				}
				if(xy) ans++;
			}
		}
		if(i==1) res=ans;
		else res=res^(ans*i);
	}
	printf("%d",res);
	return 0;
}

「指望」得分:玄學

T3,樹上的數(tree),本題難度達到了NOIp/CSP史上的新高度,曠古爍今,史上首次出現黑題,乾脆沒寫,0分滾粗

因而D1「指望」得分:100+玄學+0

 

下午就是S2了,目標AK

試題密碼:=zhu1YI1JIAN1cha9(注意檢查1119)

T1,數字遊戲(number),CSP-J元年,塞分題居然如此簡單

#include<bits/stdc++.h>
using namespace std;
char a[8];
int main()
{
	//freopen("number.in","r",stdin);
	//freopen("number.out","w",stdout);
	cin>>a;
	int s=0;
	for(int i=0;i<=7;i++)
	{
		if(a[i]=='1') s++;
	}
	printf("%d",s);
	return 0;
}

「指望」得分:100

T2,公交換乘(transfer),不假思索地進行大模擬

#include<bits/stdc++.h>
using namespace std;
int a[100005],b[100005],c[100005];
bool f[100005];
int main()
{
	//freopen("transfer.in","r",stdin);
	//freopen("transfer.out","w",stdout);
	int n;
	scanf("%d",&n);
	int ans=0;
	for(int i=1;i<=n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]),ans+=b[i];
	int t=1;
	for(int i=1;i<=n;i++)
	{
		if(a[i]==1)
		{
			int x=-1;
			for(int j=i-1;j>=t;j--)
			{
				if(c[i]-c[j]>45)
				{
					t=j;break;
				}
				if(a[j]==0&&b[i]<=b[j]&&!f[j]) x=j;
			}
			if(x!=-1) f[x]=1,ans-=b[i];
		}
	}
	printf("%d",ans);
	return 0;
}

「指望」得分:100

T3,記念品(souvenir),聽說是個揹包。我基本經驗又不熟了。我不該該了。

#include<bits/stdc++.h>
#define INF 214748364
using namespace std;
int a[105][105];
int main()
{
	//freopen("souvenir.in","r",stdin);
	//freopen("souvenir.out","w",stdout);
	int t,n,m;
	scanf("%d%d%d",&t,&n,&m);
	a[0][1]=INF;
	for(int i=1;i<=t;i++)
	{
		for(int j=1;j<=n;j++) scanf("%d",&a[i][j]);
	}
	if(t==1)
	{
		printf("%d",m);
		return 0;
	}
	int k;
	for(int i=1;i<=t;i++)
	{
		if(a[i][1]<=a[i-1][1]&&a[i][1]<a[i+1][1])
		{
			k=m/a[i][1];m%=a[i][1];
		}
		if(a[i][1]>a[i-1][1]&&a[i][1]>=a[i+1][1])
		{
			m+=k*a[i][1];k=0;
		}
	}
	printf("%d",m);
	return 0;
}

「指望」得分:25

T4,加工零件(work),我沒了,暴力出不了奇蹟,今年題這麼水,想必會有成百上千的OIer AK CSP-J2,我1=估計沒戲了(退役預警

#include<bits/stdc++.h>
using namespace std;
int n,m,q;
int a[1005][1005];
int b[1005],c[1005];
bool f[1005][1005];
int maxn=0;
void dfs(int x,int y)
{
	if(y>maxn) return;
	f[x][y]=1;
	for(int i=1;i<=n;i++)
	{
		if(a[x][i]) dfs(i,y+1);
	}
}
int main()
{
	//freopen("work.in","r",stdin);
	//freopen("work.out","w",stdout);
	scanf("%d%d%d",&n,&m,&q);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		a[x][y]=a[y][x]=1;
	}
	for(int i=1;i<=q;i++)
	{
		scanf("%d%d",&b[i],&c[i]);
		maxn=max(maxn,c[i]);
	}
	dfs(1,0);
	for(int i=1;i<=q;i++)
	{
		if(f[b[i]][c[i]]) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}

「指望」得分:40

CSP-J2「指望」得分:100+100+25+40=265

Day 2

賽前的小插曲,因爲身份證找不到了,差點所以退役

今天居然有同窗沒來?彪悍啊

試題密碼:@zhuajin1SHIJIAN7(抓緊時間17)

T1,Emiya 家今天的飯(meal),本來按照三維dp去作,走上了光明大道,結果。。。沒推出來,「指望」能得到4分的好 成 績

#include<bits/stdc++.h>
using namespace std;
int a[105][2005];
int main()
{
	//freopen("meal.in","r",stdin);
	//freopen("meal.out","w",stdout);
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++) scanf("%d",&a[i][j]);
	}
	int ans=0;
	if(n==2&&m==2)
	{
		if(a[1][2]&&a[2][1]) ans++;
		if(a[1][1]&&a[2][2]) ans++;
		printf("%d",ans);
	}
	else printf("3");
	return 0;
}

T2,劃分(partition),基本算是輕鬆搞出了O(n^2)的dp,再進一步很難

#include<bits/stdc++.h>
using namespace std;
long long a[500005],s[500005],f[500005];
int l[500005];
int main()
{
	//freopen("partition.in","r",stdin);
	//freopen("partition.out","w",stdout);
	memset(f,127,sizeof(f));
	f[0]=0;
	int n,t;
	scanf("%d%d",&n,&t);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]),s[i]=s[i-1]+a[i];
	f[1]=a[1]*a[1];
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<i;j++)
		{
			if(f[j]+(s[i]-s[j])*(s[i]-s[j])<f[i]&&s[i]-s[j]>=s[j]-s[l[j]])
			{
				f[i]=f[j]+(s[i]-s[j])*(s[i]-s[j]);
				l[i]=j;
			}
		}
	}
	printf("%lld",f[n]);
	return 0;
}

「指望」得分:64

T3,樹的重心(centroid),不會

「指望」得分:0

D2的指望得分:4+64+0=68

 

考完回去趕忙肝做業了,暫時忘掉即將退役的痛苦

Day 4

BJ公示程序了,因而放到luogu上,用民間數據自測一下

先說結果:

CSP-S2

D1 T1 75?

D1 T2 30

D1 T3 0

D2 T1 4

D2 T2 64

D2 T3 0

總分:75+30+0+4+64+0=173(我太蔡了qwq要被開除社籍了

CSP-J2

T1 100

T2 100

T3 25

T4 40

總分:100+100+25+40=265(一分不差 是否是有點蔡了

標 準 結 局

D1T1居然得到了75分的好成績?問題是,n>=63是就會RE。。。

(未完待續)

相關文章
相關標籤/搜索