2023 CSP-J/S 游寄

上午很早就到了,在门口碰见了@Alexxtl 、@suojingxin123 和@blackhig ,寒暄了几句后进了考场。虽然但是不得不说郑大东门离机房真的好远,走了至少10min才到。

J组开场看了看T1,轻轻松松推出了公式,20min搞定。状态不错,心情很轻松。

#include<bits/stdc++.h>
using namespace std;
long long n,ans,cnt;
bool pd;
int main(){
//	freopen("apple.in","r",stdin);
//	freopen("apple.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>n;
	pd=1;
	while(n){
		if(!((n-1)%3)&&pd){
			ans=cnt;
			pd=0;
		}
		if(n%3==0){
			n-=(n/3);
		}else{
			n-=(n/3+1);
		}
		cnt++;
	}
	cout<<cnt<<' '<<ans+1<<'\n';
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
//8:30 start
//8:58 done
//9:02 check
//9:10 KO

然后直接开T2,本来想用dp来写的,但是发现贪心好像能过,于是就花30min打了个贪心,样例基本没什么问题。

#include<bits/stdc++.h>
#define MAX 100555
using namespace std;
long long n,d,Cin[MAX],pay[MAX],id;
long long sum,ans,tmp,cz,dis[MAX];
int main(){
//	freopen("road.in","r",stdin);
//	freopen("road.out","w",stdout);
	scanf("%lld%lld",&n,&d);
	dis[1]=0;
	for(int i=2;i<=n;i++){
		scanf("%lld",&Cin[i]);
		dis[i]=dis[i-1]+Cin[i];
	}
//	for(int i=1;i<=n;i++){
//		printf("%lld\n",dis[i]);
//	}
//	cout<<'\n';
	for(int i=1;i<=n;i++){
		scanf("%lld",&pay[i]);
	}
	for(int i=1;i<=n-1;i=id){
		sum=-cz;
		id=0;
		for(int j=i;j<=n;j++){
			if(pay[i]>pay[j]){
				id=j;
				break;
			}
		}
		if(!id)id=n;
		sum+=(dis[id]-dis[i]);
		tmp=ceil(sum*1.0/d);
		ans+=(tmp*pay[i]);
		cz=tmp*d-sum;
//		cout<<"id:"<<id<<'\n';
//		cout<<"sum:"<<sum<<'\n';
//		cout<<"tmp:"<<tmp<<'\n';
//		cout<<"ans:"<<ans<<'\n';
//		cout<<"cz:"<<cz<<'\n';
	}
	printf("%lld\n",ans);
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
/*
5 4
10 10 10 10
9 8 9 6 5
9:48 done
9:58 check
10:11 KO
*/

T3一眼大模拟,我信心满满的打了438行,耗时2个小时,最后发现连样例也过不了,崩溃了/kk,而且我还眼瞎没看到数据范围,最后没时间了只打了能过10pts的代码。

代码放剪贴板里了

T4基本没看,因为T3用了太长时间了,后来一看还能输出-1,直接不可以总司令好吧awa

中午出来在附近吃了个饭,上洛谷看了看大家都考这么好,好慌。

下午本来是想找@SlaineTroyard ,但是没找到,不过排队的时候碰巧遇到了@Present_Coming_Time ,发现他比我低一届还比我强/fad。

S组先看第一题,发现不过就是个枚举,直接打了6层for循环,但是不知为什么样例1总是给我输出76,只好继续推公式,实在无法静下心来时就打两把扫雷,过了两个小时后终于写出来了。

#include<bits/stdc++.h>
using namespace std;
int n,a[15][15],ans,sum;
int main(){
//	freopen("lock.in","r",stdin);
//	freopen("lock.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=5;j++){
			cin>>a[i][j];
		}
	}
	for(int i1=0;i1<=9;i1++){
		for(int i2=0;i2<=9;i2++){
			for(int i3=0;i3<=9;i3++){
				for(int i4=0;i4<=9;i4++){
					for(int i5=0;i5<=9;i5++){
						for(int i=1;i<=n;i++){
							if(i1==a[i][1]&&i2==a[i][2]&&i3==a[i][3]&&i4==a[i][4]&&i5==a[i][5])continue;
							if(((i1==a[i][1]&&i2==a[i][2]&&i3==a[i][3]&&i4==a[i][4])||
							(i1==a[i][1]&&i2==a[i][2]&&i3==a[i][3]&&i5==a[i][5])||
							(i1==a[i][1]&&i2==a[i][2]&&i4==a[i][4]&&i5==a[i][5])||
							(i1==a[i][1]&&i3==a[i][3]&&i4==a[i][4]&&i5==a[i][5])||
							(i2==a[i][2]&&i3==a[i][3]&&i4==a[i][4]&&i5==a[i][5]))){
								sum++;
							}
							if(((10-a[i][1]+i1==10-a[i][2]+i2||abs(10-a[i][1]+i1-(10-a[i][2]+i2))==10)&&i3==a[i][3]&&i4==a[i][4]&&i5==a[i][5])||
							((10-a[i][2]+i2==10-a[i][3]+i3||abs(10-a[i][2]+i2-(10-a[i][3]+i3))==10)&&i1==a[i][1]&&i4==a[i][4]&&i5==a[i][5])||
							((10-a[i][3]+i3==10-a[i][4]+i4||abs(10-a[i][3]+i3-(10-a[i][4]+i4))==10)&&i1==a[i][1]&&i2==a[i][2]&&i5==a[i][5])||
							((10-a[i][4]+i4==10-a[i][5]+i5||abs(10-a[i][4]+i4-(10-a[i][5]+i5))==10)&&i1==a[i][1]&&i2==a[i][2]&&i3==a[i][3])){
								sum++;
							}
						}
						if(sum==n)ans++;
						sum=0;
					}
				}
			}
		}
	}
	cout<<ans<<'\n';
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
/*
1
0 0 1 1 5

2
2 8 3 5 5
2 8 3 5 1
done on 17:43
*/

T2直接用了暴力打了35pts,然后只剩下10min了,T3T4直接输出样例跑路。

//35pts
#include<bits/stdc++.h>
using namespace std;
int n,ans,cnt;
string tmp;
bool Delete(string s){
	for(int i=0;i<s.length();i++){
		if(s[i]==s[i+1]){
			s.erase(i,2);
			i=-1;
//			cout<<s<<' ';
		}
	}
	return s.empty();
}
char ch[200055];
int main(){
//	freopen("game.in","r",stdin);
//	freopen("game.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		cin>>ch[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j+=2){
			tmp="";
			if((j-i+1)%2!=0)continue;
			for(int k=i;k<=j;k++){
				tmp+=ch[k];
			}
			if(Delete(tmp)){
//				cout<<tmp<<'\n';
				ans++;
			}
		}
	}
	cout<<ans<<'\n';
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
/*
8
accabccb
*/

出来后跟其他人聊了聊,好像都比我好,算了直接回家不管了awa。

10.22上午去找@SlaineTroyard 玩awa

Update On 10.22

跟SlaineTroyard面基了,聊了一上午awa。

Update On 10.29

出分了,J组215,S组135。

posted @ 2024-01-16 21:40  GyrthCurunír  阅读(4)  评论(0编辑  收藏  举报