第十八次CSP认证总结

我的第一次CSP认证,期望考到200分。
题目一年比一年难…之前往年的题目也就做了前两题,没有认真研究后面三个题,太浮躁了。

2019-12-15 青岛大学
前两个水题切了一个小时,之前的最多40分钟,把题目理解清楚就ok了。
第三题判断化学方程式是否配平(包括系数、化学元素(大小写)、括号、嵌套括号),读题的时候想的太少,没考虑清楚,导致最后写了2个半小时才发现没想全…再给我1小时差不多可以过6组样例的,下次再做大模拟的想明白了再下手,在纸上要写明白,要不写的时候容易掉了条件,我太难了…
第四题区块链,没看懂,过后补题,没做。
第五题,区间操作,暴力做的,longlong开的无符号整型。

2019-12-17
出分了 … 240 (前7.1%),差不多跟预想的一样
1:100
2:100
3:30
4:0
5:10

明年3月份继续吧,这次做题有点浮躁,沉不下心来,还是菜啊…
考一次有点贵,400块钱(包括路费)…学校好像对这个不重视,没法报销。
附上比赛的代码:

1.报数(100分)

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
typedef long long ll;
const int maxn=1e6+10;
using namespace std;
ll a[maxn];
ll judge(int n)
{
	if(n%7==0)
		return 1;
	ll num=log10(n)+1;
	ll ans=n;
	for(int i=1;i<=num;i++)
	{
		if(ans%10==7)
			return 1;
		ans/=10;
	}
	return 0;
}
void init()
{
	ll k=1;
	for(int i=1;i<=10000;i++)
	{
		if(judge(i)==0)
			a[k++]=i;
	}
}
int main()
{
	ll n;
	ll a1=0,a2=0,a3=0,a4=0;
	cin>>n;
	init();
	ll num=a[n];
	for(int i=1;i<=num;i+=4)//1
	{
		if(judge(i)==1)
			a1++;
	} 
	for(int i=2;i<=num;i+=4)//2
	{
		if(judge(i)==1)
			a2++;
	} 
	for(int i=3;i<=num;i+=4)//3
	{
		if(judge(i)==1)
			a3++;
	} 
	for(int i=4;i<=num;i+=4)//4
	{
		if(judge(i)==1)
			a4++;
	} 
	cout<<a1<<endl<<a2<<endl<<a3<<endl<<a4<<endl;
	
	return 0;
}

2.回收站选址 (100分)

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
typedef long long ll;
const int maxn=1e6+10;
using namespace std;
struct node{
	ll x,y;
}eg[maxn];
ll a[10];
int main()
{
	ll u,d,l,r,num;
	ll n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>eg[i].x>>eg[i].y;
	}
	for(int i=1;i<=n;i++)
	{
		u=0,d=0,l=0,r=0;
		num=0;
		ll x=eg[i].x;
		ll y=eg[i].y;
		for(int j=1;j<=n;j++)
		{
			
			if(eg[j].x==x&&eg[j].y==y+1)
				u=1;
			else if(eg[j].x==x&&eg[j].y==y-1)
				d=1;
			else if(eg[j].x==x-1&&eg[j].y==y)
				l=1;
			else if(eg[j].x==x+1&&eg[j].y==y)
				r=1;
		
		}
		if(u==1&&d==1&&l==1&&r==1)
		{
			for(int j=1;j<=n;j++)
			{
				if(eg[j].x==x-1&&eg[j].y==y+1)
					num++;
				else if(eg[j].x==x-1&&eg[j].y==y-1)
					num++;
				else if(eg[j].x==x+1&&eg[j].y==y+1)
					num++;
				else if(eg[j].x==x+1&&eg[j].y==y-1)
					num++;	
			}
			a[num]++; 
		}
	}
	for(int i=0;i<=4;i++)
	{
		cout<<a[i]<<endl;
	}
	return 0;
}

3.化学方程式 (30分)

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
typedef long long ll;
const int maxn=1e6+10;
using namespace std;
ll pre[1000],hre[1000];
ll s[1000],h[1000];
void init()
{
	for(int i=0;i<1000;i++)
	{
		pre[i]=0;
		hre[i]=0;
		s[i]=0;
		h[i]=0;
	}
}
int main()
{
	ll n,k;
	cin>>n;
	string str;
	for(int i=1;i<=n;i++)
	{
		init();
		ll flag=0;
		cin>>str;
		for(int j=0;j<str.length();j++)
		{
			if(str[j]=='=')
				k=j;	
		}	
		//cout<<"k "<<endl;
		ll o1=0;
		for(int i=0;i<k;i++)
		{
			if(str[i]=='+')
				s[o1++]=i;
		}
	//	cout<<"o1 "<<o1<<endl;
		ll o2=0;
		for(int i=k+1;i<str.length();i++)
		{
			if(str[i]=='+')
				h[o2++]=i;
		}
		ll qq;
		if(s[0]==0)
			qq=k;
		else
			qq=s[0];
		ll f1=0;//第一部分 
		if(str[0]>='0'&&str[0]<='9')
			f1=1;
		if(f1)
		{
			ll mm;
			ll num=str[0]-'0';
			for(int i=1;i<qq;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
				if(str[i+1]>='0'&&str[i+1]<='9')
				{
					mm=str[i+1]-'0';
					
				}	
				
				pre[str[i]-'A']+=num*mm;
			}
		}
		else
		{
			ll mm;
			for(int i=0;i<qq;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
						//cout<<mm<<endl; 
						
					}	
				//cout<<str[i]<<endl;
				pre[str[i]-'A']+=mm;
			}
		}
	  
	   for(int i=0;i<o1-1;i++)//中间 
	   {
	   	    ll l=s[i]+1,r=s[i+1];
	   		ll f=0;
			if(str[l]>='0'&&str[l]<='9')
				f=1;
			if(f)
			{
				ll mm;
				ll num=str[l]-'0';
				for(int i=l+1;i<r;i++)
				{
					mm=1;
					if(str[i]>='0'&&str[i]<='9')
						continue;
					
						if(str[i+1]>='0'&&str[i+1]<='9')
						{
							mm=str[i+1]-'0';
							
						}	
					
					pre[str[i]-'A']+=num*mm;
				}
			}
			else
			{
				ll mm;
				for(int i=l;i<r;i++)
				{
					mm=1;
					if(str[i]>='0'&&str[i]<='9')
						continue;
					
						if(str[i+1]>='0'&&str[i+1]<='9')
						{
							mm=str[i+1]-'0';
						
						}	
					
					pre[str[i]-'A']+=mm;
				}
			}
	   }
	   if(s[0])
	   {
	   
		f1=0;//后面 
		if(str[s[o1-1]+1]>='0'&&str[s[o1-1]+1]<='9')
			f1=1;
		if(f1)
		{
			ll mm;
			ll num=str[s[o1-1]+1]-'0';
			for(int i=s[o1-1]+2;i<k;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
					
					}	
				
				pre[str[i]-'A']+=num*mm;
			}
		}
		else
		{
			ll mm;
			for(int i=s[o1-1]+1;i<k;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
						
					}	
				
				pre[str[i]-'A']+=mm;
			}
		}	
	   }
		//==HOU
		ll pp;
		if(h[0]==0)
			 pp=str.length();
		else
			pp=h[0];
		f1=0;//第一部分 
		if(str[k+1]>='0'&&str[k+1]<='9')
			f1=1;
		if(f1)
		{
			ll mm;
			ll num=str[k+1]-'0';
			for(int i=k+2;i<pp;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
						
					}	
				
				hre[str[i]-'A']+=num*mm;
			}
		}
		else
		{
			ll mm;
			for(int i=k+1;i<pp;i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
					
					}	
				
				hre[str[i]-'A']+=mm;
			}
		}
	  
	   for(int i=0;i<o2-1;i++)//中间 
	   {
	   	    ll l=h[i]+1,r=h[i+1];
	   		ll f=0;
			if(str[l]>='0'&&str[l]<='9')
				f=1;
			if(f)
			{
				ll mm;
				ll num=str[l]-'0';
				for(int i=l+1;i<r;i++)
				{
					mm=1;
					if(str[i]>='0'&&str[i]<='9')
						continue;
					
						if(str[i+1]>='0'&&str[i+1]<='9')
						{
							mm=str[i+1]-'0';
							
						}	
					
					hre[str[i]-'A']+=num*mm;
				}
			}
			else
			{
				ll mm;
				for(int i=l;i<r;i++)
				{
					mm=1;
					if(str[i]>='0'&&str[i]<='9')
						continue;
				
						if(str[i+1]>='0'&&str[i+1]<='9')
						{
							mm=str[i+1]-'0';
						
						}	
					
					hre[str[i]-'A']+=mm;
				}
			}
	   }
		if(h[0])
		{
		f1=0;//后面 
		if(str[h[o2-1]+1]>='0'&&str[h[o2-1]+1]<='9')
			f1=1;
		if(f1)
		{
			ll mm;
			ll num=str[h[o2-1]+1]-'0';
			for(int i=h[o2-1]+2;i<str.length();i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
					
					}	
				
				hre[str[i]-'A']+=num*mm;
			}
		}
		else
		{
			ll mm;
			for(int i=h[o2-1]+1;i<str.length();i++)
			{
				mm=1;
				if(str[i]>='0'&&str[i]<='9')
					continue;
				
					if(str[i+1]>='0'&&str[i+1]<='9')
					{
						mm=str[i+1]-'0';
						
					}	
				
				hre[str[i]-'A']+=mm;
			}
		}
		}
		
		for(int i=0;i<500;i++)
		{
			if(pre[i]!=hre[i])
				flag=1;
		}
		if(flag)
			cout<<"N"<<endl;
		else
			cout<<"Y"<<endl;
		
	}	
		 
	return 0;
}

5.魔数 (10分)

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
typedef unsigned long long ll;
const int maxn=1e6+10;
using namespace std;
ll a[maxn];
ll u[10];
ll n;
const ll mod1=2009731336725594113;
const ll mod2=2019;
void init(ll n)
{
	for(int i=1;i<=n;i++)
	{
		a[i]=i;
	}
}
int main()
{
	ll q;
	u[0]=314882150829468584;
	u[1]=427197303358170108;
	u[2]=1022292690726729920;
	u[3]=1698479428772363217;
	u[4]=2006101093849356424;
	cin>>n>>q;
	init(n);
	ll num;
	ll l,r,t;
	for(int i=1;i<=q;i++)
	{
		num=0;
		cin>>l>>r;
		for(int j=l;j<=r;j++)
		{
			num+=(a[j]%mod1)%mod2;
		}
		cout<<num<<endl;
		t=num%5;
		for(int j=l;j<=r;j++)
		{
			a[j]=((a[j]%mod1*u[t]%mod1)%mod1)%mod2;
		}
	}
		 
	return 0;
}
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CCF(中国计算机学会)CSP(中国软件专业人员认证)是国内一项重要的IT技术认证考试。CSP考试是由CCF组织和管理的,旨在评估考生在软件开发和项目管理领域的专业技能。 CSP认证试题涵盖了多个方面的知识,包括软件工程、项目管理、数据库管理、网络技术等。试题通常分为选择题和编程题两部分,对考生的理论知识和实际应用能力进行综合测试。 CCF CCF CSP认证试题的难度适中,题目涉及的知识点丰富。通过参加CSP考试,考生不仅可以提升自己的专业技能,还可以获得一个行业认可度较高的证书。 参加CSP考试有一定的门槛,要求考生具有一定的软件开发和项目管理经验。考生需要通过报名,参加线下考试,最终取得成绩。考试内容和难度每年可能会有所调整,考生需要及时了解最新的考试大纲和题目要求,为考试做好充分准备。 对于有意参加CSP考试的人来说,可以通过查阅参考书籍、参加培训班、刷题练习等方式来提高自己的知识和能力。此外,还可以参加相关的学术交流活动、讲座等,积极与其他从业人员交流,提高自己的专业水平。 CSP认证试题的通过对于求职者来说具有一定的参考价值,可以证明自己在软件开发和项目管理领域的专业水平。对于企业来说,CSP认证也是一种可靠的招聘参考,可以帮助企业筛选出具备一定技术能力的人才。 总之,CCF CSP认证试题是一个重要的IT技术认证考试,对于提升个人技术能力和求职竞争力具有一定的帮助。希望大家能够认真对待,做好充分准备,取得好的成绩。 ### 回答2: CCF(中国计算机学会)CSP(计算机软件专业技术资格认证)是中国计算机学会推出的一项专业认证考试。它旨在评估计算机软件专业人员的专业技术水平和能力。CSP认证试题是CSP考试的重要组成部分。 CSP认证试题覆盖了计算机软件专业的各个领域,包括计算机系统基础、软件工程、算法与数据结构、程序设计语言、数据库、计算机网络等。试题内容涵盖了理论知识和实际应用,旨在全面考核考生的综合能力。 CSP认证试题设置了多种题型,包括选择题、填空题、编程题等。选择题考查考生对知识点的理解和记忆,填空题考查考生对概念和原理的掌握,编程题则考查考生的实际编程能力和解决问题的能力。 CSP认证试题的难度逐级递增,旨在评估考生在计算机软件专业领域的深度和广度。考生需要通过对试题的解答来展示自己的知识水平和能力。 参加CSP认证考试的考生可以通过自我学习、参加培训班等方式进行备考。在备考过程中,应重点掌握基础知识和常用技能,并通过解答CSP认证试题进行实践和巩固。 总之,CCF CSP认证试题是评估计算机软件专业人员能力的重要考核工具,通过备考和解答试题,考生可以展示自己在该领域的技术水平和能力,取得CSP认证资格。 ### 回答3: CCF CSP认证试题是由中国计算机学会(CCF)推出的一项计算机相关的职业技术认证。该认证试题旨在评估考生在计算机科学与技术领域的理论知识和实际应用能力。通过参加并且通过CCF CSP认证试题,考生可以获得相应的认证证书,这将有助于他们在职业发展和工作找寻方面的竞争力。 CCF CSP认证试题包括多个专业领域,如算法设计与分析、计算机组成原理、数据库原理与应用、操作系统原理与应用、计算机网络等。试题涵盖了计算机科学与技术的核心知识点和常见应用场景,以及对相关技术的理解和解决问题的能力。 参加CCF CSP认证试题需要考生具备扎实的计算机基础知识,熟悉常见的编程语言和工具,具备一定的编程能力和计算机系统分析与设计的经验。在考试中,除了理论知识的掌握外,考生还需要具备解决实际问题的能力,能够独立思考,分析和解决具体的计算机科学与技术问题。 通过CCF CSP认证试题,考生可以证明自己在计算机领域的专业能力和知识水平,这对于求职或职业发展都具有积极的影响。同时,认证证书还能够作为考生在求职过程中的一个竞争优势,增加他们在相关职位的竞争力。 总之,CCF CSP认证试题是一个评估计算机科学与技术素养的标准化考试,通过参加该考试并获得认证证书,考生可以证明自己的专业能力和知识水平,这对于提升职业竞争力和求职成功都具有积极的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aaHua_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值