From 8aeb58ec3244f3e67cc5c6578a818fac03278fe5 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Wed, 5 Nov 2025 10:44:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=89=E4=B8=AA?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E9=A2=98=E7=9B=AE=E8=A7=A3=E5=86=B3=E6=96=B9?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了三个算法题目的解决方案文件: 1. P3951.cpp - 实现简单的数学计算 2. P14362.cpp - 基础IO优化设置 3. P3952.cpp - 实现复杂度分析器,判断代码块的时间复杂度 --- src/11/4/P14362.cpp | 13 ++++++ src/11/4/P3951.cpp | 6 +++ src/11/4/P3952.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 src/11/4/P14362.cpp create mode 100644 src/11/4/P3951.cpp create mode 100644 src/11/4/P3952.cpp diff --git a/src/11/4/P14362.cpp b/src/11/4/P14362.cpp new file mode 100644 index 0000000..e809c54 --- /dev/null +++ b/src/11/4/P14362.cpp @@ -0,0 +1,13 @@ +#include +#include +#include +using ll = int64_t; + + + +int main(){ + std::iostream::sync_with_stdio(false); + std::cin.tie(nullptr); + + +} \ No newline at end of file diff --git a/src/11/4/P3951.cpp b/src/11/4/P3951.cpp new file mode 100644 index 0000000..fc5550c --- /dev/null +++ b/src/11/4/P3951.cpp @@ -0,0 +1,6 @@ +#include +int main(){ + int a,b; + std::cin>>a>>b; + std::cout<<(a*b)-a-b<<"\n"; +} \ No newline at end of file diff --git a/src/11/4/P3952.cpp b/src/11/4/P3952.cpp new file mode 100644 index 0000000..928f341 --- /dev/null +++ b/src/11/4/P3952.cpp @@ -0,0 +1,100 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using ll = int64_t; +#define sl static inline + +ll n,op,res,now,nres; +char tmp; +std::string st; +std::set used; +bool iserror; +struct S{ + char c; + ll res; + bool isok; +}; +std::deque stk; +#define printf +sl void solve(){ + op=0,res=0; + iserror=false; + used.clear(); + stk.clear(); + std::cin>>tmp>>tmp>>tmp; + if(tmp=='1'){ + op=0; + std::cin>>tmp; + }else{ + std::cin>>tmp; + std::cin>>op; + std::cin>>tmp; + } + printf("STARTING %lld Get O(n^%lld)\n",++now,op); + while(std::cin>>st){ + printf("while st=%s\n",st.data()); + ll add=0; + if(st=="F"){ + char i; + bool isok=(stk.size()?stk.back().isok:true); + std::string x,y; + std::cin>>i>>x>>y; + if(y=="n"&&x!="n"){ + add++; + }else if(x=="n"&&isdigit(y[0])){ + isok=false; + }else if(isdigit(x[0])&&isdigit(y[0])){ + ll nx=atoi(x.data()),ny=atoi(y.data()); + if(nx>ny){ + isok=false; + } + } + if(used.find(i)!=used.end()){ + iserror=true; + }else{ + used.emplace(i); + } + stk.push_back({i,stk.empty()?add:stk.back().res+add,isok}); + }else if(st=="E"){ + if(stk.empty()){ + iserror=true; + }else{ + printf("pop stk c=%c, res=%lld\n",stk.back().c,stk.back().res); + if(stk.back().isok){ + res=std::max(res,stk.back().res); + } + used.erase(stk.back().c); + stk.pop_back(); + } + }else{ + n=atoi(st.data()); + break; + } + } + if(stk.size())iserror=true; + if(iserror){ + std::cout<<"ERR\n"; + }else{ + std::cout<<(res==op?"Yes":"No")<<"\n"; + } +} + +int main(){ + std::iostream::sync_with_stdio(false); + std::cin.tie(nullptr); + + ll t; + std::cin>>t; + std::cin>>n; + while(t--){ + solve(); + } +} \ No newline at end of file