首页 > 其他分享 >2022 CSPJ

2022 CSPJ

时间:2023-11-01 14:47:42浏览次数:33  
标签:aa int second CSPJ 2022 duan include first

 直接模拟即可,注意特判

#include<iostream>
#include<cstdio>
#include<ctime>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#define maxn 200010
#define LL long long
using namespace std;

int main()
{
    int a,b;
    cin>>a>>b;
    if(a==1){
    	cout<<1;return 0;
	}
	if(b==1){
		cout<<a;return 0;
	}
	LL ans=1;
	while(b&&ans<=1e9){
		ans*=a;
		b--;
	}
	if(ans>1e9){
		cout<<-1;return 0;
	}
	cout<<ans;
	return 0;
}

其实就是数学题,解方程而已,也可以二分因为p<q

#include<iostream>
#include<cstdio>
#include<ctime>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#define maxn 200010
#define LL long long
using namespace std;
//这道题可以用二分,也可以直接带进去式子算(一元二次方程  带公式,看算的出来不)
 
int main()
{
	LL k,n,e,d,p,q;
	cin>>k;
	while(k--){
		cin>>n>>e>>d;
		LL delta=sqrt((n-e*d+2)*(n-e*d+2)-4*n);
		LL b=n-e*d+2;
		LL p=(b+delta)/2;
		LL q=b-p;
		if(p*q==n&&e*d==(p-1)*(q-1)+1&&p&&q){
			cout<<min(p,q)<<" "<<max(p,q)<<endl;
		}
		else cout<<"NO"<<endl;
	}
	return 0;
}

 用栈把中缀转后缀表达式,在加上一些巧妙地操作。。。

 

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<queue>
#include<map>
#include<ctime>
#include<vector>
#include<set>
using namespace std;
typedef long long LL;
const int maxn=1e6+10;
using namespace std;
//表达式求值:后缀表达式
//但是有其他巧妙地操作:统计略过的计算次数 (短路)
stack<int> st;
stack<pair<int,int> > duan;  //短路或、与的次数
string s;
stack<char> op;
map<char,int> mp; //运算符优先级的 
void merg_duan(pair<int,int> aa,pair<int,int> bb,int a,int b,char p){
	//如果 a|b  a为1,那么或短路次数为a.first+1   与为aa.second 
	//如果a为0 那么就是aa+bb
	pair<int,int> c;
	if(a==1&&p=='|'){
		c.first=aa.first+1;
		c.second=aa.second;
	} 
	//如果 a&b  a为0,那么或次数不变,与次数+1 
	else if(a==0&&p=='&'){
		c=aa;
		c.second++;
	} 
	else{
		c.first=aa.first+bb.first;
		c.second=aa.second+bb.second;
	}
	duan.push(c); //把新的短路次数也加入 
}
void calc(){
	int b=st.top();st.pop();
	int a=st.top();st.pop();
	int num=0;
	pair<int,int> bb=duan.top();duan.pop();
	pair<int,int> aa=duan.top();duan.pop();
	merg_duan(aa,bb,a,b,op.top());
	if(op.top()=='|') num=a|b;
	else if(op.top()=='&') num=a&b;
	st.push(num);
	op.pop();
	return; 
	
}
void solve(){
	int len=s.length();
	for(int i=0;i<len;i++){
		if(isdigit(s[i])) st.push(s[i]-'0'),duan.push({0,0});
		//遇到数字,就入栈,数字和短路次数
		else{
			if(s[i]=='(') op.push('(');
			if(s[i]==')'){
				while(!op.empty()&&op.top()!='(') calc();
				if(!op.empty()) op.pop(); //把(弹出去 
			}
			if(s[i]!='('&&s[i]!=')'){
				//如果遇到运算符,就先把栈里面优先级高的都弹出 
				while(!op.empty()&&mp[op.top()]>=mp[s[i]]) calc();
				op.push(s[i]);
			}
		} 
	}
	while(!op.empty()){
		calc();
	}
	cout<<st.top()<<endl<<duan.top().second<<" "<<duan.top().first<<endl;
}
int main(){
	cin>>s;
	mp['&']=2;
	mp['|']=1;	
	solve();
	return 0;
}

  

 典型的dp

f[i][j]表示走到i,用了插入的j个点能取到的最大值

#include <bits/stdc++.h>
using namespace std;
const int maxn=505;
int f[maxn][maxn];   //f[i][j]: 前 i 个点,插入了 j 个点后最大长度
pair<int,int> a[maxn];
int main()
{
	int n,k;
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i].first>>a[i].second;
	sort(a+1,a+1+n);
	for(int i=1;i<=n;i++){
		for(int j=0;j<=k;j++) f[i][j]=1+j;
	}
	//最长上升子序列
	for(int i=2;i<=n;i++){
		for(int j=i-1;j>=1;j--){
			if(a[j].second>a[i].second) continue;
			//从j到i要插入d个点
			int d=a[i].first-a[j].first+a[i].second-a[j].second-1;
			for(int p=d;p<=k;p++) f[i][p]=max(f[i][p],f[j][p-d]+1+d); 
		}
	} 
	int ans=0;
	for(int i=1;i<=n;i++) ans=max(ans,f[i][k]);
	cout<<ans<<endl;
	return 0;
}

  

标签:aa,int,second,CSPJ,2022,duan,include,first
From: https://www.cnblogs.com/shirlybaby/p/17803059.html

相关文章

  • Visual Studio 2022使用总结
    如何让新建的文件默认为utf8编码点击扩展,管理扩展,搜索utf8,选择ForceUTF-8(WithBOM)2022,安装后重启即可。注意:这里还有一个NoBOM版本,但是该版本的编码在VisualStudio2022下输出中文会报错。经历:我在windows下写好的cpp文件,在linux编译后运行发现中文乱码,后来发现linux显......
  • 【专题】2022年中国财税数字化行业研究报告PDF合集分享(附原数据表)
    数字化是复杂系统中的一个重要驱动因素,它得到了技术进步的支持。随着以大数据、物联网、云计算、人工智能等为代表的数字技术的不断成长和成熟,企业必须应对的内外部环境发生了翻天覆地的变化。新的全球生产力革命的一个关键驱动因素是数字智能化。企业的采购、生产、经营、销售等商......
  • C#编程工具Visual Studio2022新特性(持续。。。)
    VS从2017年开始变动比较大,目前最新的版本是2022年版,框架也比之前的高级一丢丢,如果是老用户,可能对它的新特性还不是很习惯,跟着我一起对VS2022新特性进行深入探索:一、之前的编码模板的改变(对比)在VS2022中如果要切换到旧版本模板呢,你可以在创建项目时选择“.NETFramework”项目......
  • 【专题】2022新消费增长洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34074近年来,随着中国消费升级的趋势,新兴消费品牌在市场上逐渐崭露头角。这些品牌以挑战者的身份进入市场,通过创新的供应链、产品和营销策略,以用户为核心满足新的消费需求,实现了短期内的强劲增长和销售规模的快速扩张。然而,经济环境、疫情冲击和激烈......
  • 【专题】2022年中国新消费白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34074近年来,随着中国消费升级的趋势,新兴消费品牌在市场上逐渐崭露头角。这些品牌以挑战者的身份进入市场,通过创新的供应链、产品和营销策略,以用户为核心满足新的消费需求,实现了短期内的强劲增长和销售规模的快速扩张。然而,经济环境、疫情冲击和激烈......
  • 【专题】2022中国新消费发展洞察暨品牌力榜单报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34074近年来,随着中国消费升级的趋势,新兴消费品牌在市场上逐渐崭露头角。这些品牌以挑战者的身份进入市场,通过创新的供应链、产品和营销策略,以用户为核心满足新的消费需求,实现了短期内的强劲增长和销售规模的快速扩张。然而,经济环境、疫情冲击和激烈......
  • 【专题】2022年中国新消费产业数字化研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34074近年来,随着中国消费升级的趋势,新兴消费品牌在市场上逐渐崭露头角。这些品牌以挑战者的身份进入市场,通过创新的供应链、产品和营销策略,以用户为核心满足新的消费需求,实现了短期内的强劲增长和销售规模的快速扩张。然而,经济环境、疫情冲击和激烈......
  • 【专题】2022国潮品牌发展洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34074近年来,随着中国消费升级的趋势,新兴消费品牌在市场上逐渐崭露头角。这些品牌以挑战者的身份进入市场,通过创新的供应链、产品和营销策略,以用户为核心满足新的消费需求,实现了短期内的强劲增长和销售规模的快速扩张。然而,经济环境、疫情冲击和激烈......
  • linux docker 安装sqlserver2022
    十年河东,十年河西,莫骑少年穷学无止境,精益求精1、拉取镜像sudodockerpullmcr.microsoft.com/mssql/server:2022-latest2、运行容器sudodockerrun-e"ACCEPT_EULA=Y"-e"MSSQL_SA_PASSWORD=ChenDaDliu2023"-p1433:1433--namesql1--hostnamesqlServer-dm......
  • CSP-S 2022 游记&总结
    智慧神说要写总结,所以就叫总结啦Day-1上午收拾了下行李,中午出发坐高铁去九江了,高铁上本来想临时学一下class的用法的(说不定用得上),结果看着CSDN竟然睡着了......下午四点左右到了,九江在下小雨(话说赣州好久没下雨了QWQ),忘记带伞了,最后还是蹭cjc的伞去的宾馆。晚上收手机前打......