首页 > 其他分享 >10.19-10.20 练习

10.19-10.20 练习

时间:2024-10-20 21:46:10浏览次数:1  
标签:10.20 const int 练习 long 10.19 用栈 ull 2023

其实是复健。上一次碰电脑是期末考试完(7月),上上次是 noip(2023 年 11 月)。

1.P9752 [CSP-S 2023] 密码锁__record

要求:语文没问题,会基础语法,有生活常识。枚状态,判断。几乎没有复杂度要求。

Code
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,ans;
int a[8];
int q[N][8];
void dfs(int t){
	if(t==5){
		for(int i=1;i<=n;i++){
			int f=0;
			for(int j=1;j<=5;j++){
				if(a[j]!=q[i][j]){
					f=1;break;
				}
			}
			if(!f) return;
			int pre=-1,num=0;
			for(int j=1;j<=5;j++){
				if(a[j]!=q[i][j]){
					if(num&&(num!=j-1||num==6)) return;
					if(pre!=-1&&pre!=(a[j]-q[i][j]+10)%10) return;
					pre=(10+a[j]-q[i][j])%10;
					if(num) num=6;
					else num=j;
				}
			}
		}
		ans++;
		return;
	}
	for(int i=0;i<=9;i++){
		a[t+1]=i;
		dfs(t+1);
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=5;j++) scanf("%d",&q[i][j]);
	dfs(0);
	printf("%d",ans);
	return 0;
}

2.P9753 [CSP-S 2023] 消消乐__record

去年糊了一个 35 的暴力,现在也没看懂当时咋写的,有点复杂。

50pts 的 n^2 暴力还是可想的。发现这个消消乐能用栈维护,于是枚举左右段点也就是枚所有子串,用栈处理。栈消空了即说明可以统计答案。

接下来考虑一个性质:如果 s[1,l],s[l+1,r] 都可消,则 s[l,r] 可消;另一个性质:如果用栈维护的序列,在进、出元素后又回到了之前的状态,则说明中间的这段消掉了。

于是把每次操作完的状态哈希后用 map 维护,统计出现的各种状态。这样就把能消的子串都整合起来了。

Code
#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
using namespace std;
const int N=2e6+10;
const ull P=1331;
int n,t;
char a[N],s[N];
ll ans;
ull k,p[N];
map<ull,ll> cnt;
void init(){
	p[1]=1;
	for(int i=2;i<=N;i++) p[i]=p[i-1]*P;
}
int main(){
	scanf("%d",&n);
	cin>>a+1;
	init();
	cnt[k]=1;
	for(int i=1;i<=n;i++){
		if(t&&s[t]==a[i]) k-=(s[t]-'a'+1)*p[t],t--;
		else s[++t]=a[i],k+=(s[t]-'a'+1)*p[t];
		ans+=cnt[k];
		cnt[k]++;
	}
	printf("%lld",ans);
	return 0;
}

(这个人很愚蠢,看 luogu 第一篇题解没有看懂,只是大受震撼)

3.[]

标签:10.20,const,int,练习,long,10.19,用栈,ull,2023
From: https://www.cnblogs.com/Moyyer-suiy/p/18487411

相关文章

  • 10.19 窗口1.0(之后会完善代码,学到哪完善到哪)
    JFrame类的实例是一个底层容器(窗口)其他组件必须被添加到底层容器中,以便借助这个容器和操作系统进行信息交互。Jframe类是Container类的间接子类。当需要一个窗口时,可使用JFrame或其子类创建一个对象。窗口不能添加到另一个容器中JFrame()创建一个无标题窗口JFrame(Strings)创......
  • 【秋招笔试-支持在线评测】10.19京东秋招(已改编)-三语言题解
    ......
  • 【秋招笔试-支持在线评测】10.19小米秋招(已改编)-研发岗题解
    ......
  • 10.20 闲话
    从初中开始的很长很长一段时间,我的所有OI相关账号的签名都是"JustGoForOI!"或"CJOIerJustGoForOI!"这两句。这大概反映了我当初对于OI的态度是不思考训练的意义,不去想未来的方向,不理会文化课或者或者人际上的一些琐事,全心全意地按照教练的要求去做就行了。至于当......
  • 10.20程序员修炼之道读后感
    从序言中,我学到了不可替代的才叫经典,原则源于实践,高于实践这两个道理,令我感受颇深,我优先阅读的理应是经典,而我所缺乏的恰恰是实践前言中提到了编程需要专注,需要仔细思考,需要转变思考的方式,一切其实都可以是编程,开会,学习,吃饭,打游戏,思维打开来看,一切其实都可以是编程,我觉得虚拟世界......
  • 2024.10.20 1859版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 六,数组笔记及相关练习题大全
    Java编程基础:数组详解在Java编程中,数组是一块连续固定大小的内存空间,用于存储相同类型的多个元素。数组提供了索引的概念,允许通过索引访问和操作数组中的元素。本文将详细探讨Java中数组的定义、初始化、使用和示例。数组的定义和初始化数组在定义时需要指定数据类型和数组名。......
  • 包_练习_李四Employee
    李四Employeepackagediy.lisi;importjava.time.LocalDate;publicclassEmployee{privatefinalintage;//年龄:一般是个人隐私publicfinalStringname;//姓名:姓名通常是公开且不变的finalLocalDatehireDay=LocalDate.now();//入职日期内......
  • 2024.10.20 1424版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 2024.10.20 1315版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......