救人
2024-12-14 14:29:29
发布于:浙江
#include <bits/stdc++.h>
using namespace std;
const int maxSize = 109;
int getPriority(char op){
if(op == '+' || op == '-') return 0;
return 1;
}
void infixToPostFix(char infix[],char s2[],int& top2){
char s1[maxSize];int top1 = -1;
int i = 0;
while(infix[i] != '\0'){
if('a' <= infix[i] && infix[i] <= 'z'){
s2[++top2] = infix[i];
++i;
}
else if(infix[i] == '('){
s1[++top1] = '(';
++i;
}
else if(infix[i] == '+' || infix[i] == '-' || infix[i] == '*' || infix[i] == '/'){
if(top1 == -1 || s1[top1] == '(' || getPriority(infix[i]) > getPriority(s1[top1])){
s1[++top1] = infix[i];
++i;
}
else s2[++top2] = s1[top1--];
}
else if(infix[i] == ')'){
while(s1[top1] != '(') s2[++top2]= s1[top1--];
--top1;
++i;
}
}
while(top1 != -1) s2[++top2] = s1[top1--];
}
char s[109],res[109];
int main(){
cin >> s;
int len = -1;
infixToPostFix(s,res,len);
for(int i = 0;i <= len;i++) cout << res[i];
}
全部评论 68
d
2025-02-22 来自 浙江
3顶
2025-02-22 来自 浙江
3
2025-02-22 来自 浙江
3
顶
2024-12-14 来自 浙江
3顶
2024-12-14 来自 浙江
3顶
2024-12-14 来自 浙江
3@qi qpzc

2025-02-22 来自 浙江
2顶
2024-12-14 来自 浙江
2#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int a[N]{}; int dp[N]{}; vector<int>t[N]; void dfs(int u,int fa){ dp[u]=a[u]; for(auto son:t[u]){ if(son==fa)continue; dfs(son,u); if(dp[son]>0){ dp[u]=dp[son]+dp[u]; } } return; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ int u,v; cin>>u>>v; t[u].push_back(v); t[v].push_back(u); } dfs(1,0); int ans=-0; for(int i=0;i<=n;i++)ans=max(ans,dp[i]); cout<<ans; return 0; }2025-05-24 来自 浙江
1#include <bits/stdc++.h> using namespace std; long long dp[2009]; struct node{ int w,c; }; vector<node> ve[100009]; int m,n,t; int main(){ cin >> m >> n; for(int i = 0;i <= n;i++){ int w,c,p; cin >> w >> c >> p; ve[p].push_back({w,c}); } for(int i = 1;i <= 100;i++){ for(int j = m;j >=0;j--){ for(int k = 0;k < ve[i].size();k++){ if(j >= ve[i][k].w) dp[j] = max(dp[j],dp[j - ve[i][k].w] + ve[i][k].c); } } } cout << dp[m]; }2025-05-17 来自 浙江
1本贴超过榜10了!!!!!
2025-04-12 来自 浙江
13.15大根堆
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; cin >> n >> m; priority_queue<int> q; for(int i = 0;i < n;i++){ int a,b,c; cin >> a >> b >> c; for(int j = 1;j <= m;j++){ int tem = a * j * j + b * j + c; if(q.size() < m) q.push(tem); else if(q.top() > tem){ q.pop(); q.push(tem); } else break; } } vector<int> ve; while(q.size()){ ve.push_back(q.top()); q.pop(); } for(int i = ve.size() - 1;i >= 0;i--) cout << ve[i] << ' '; }2025-03-15 来自 浙江
1兄弟们,顶!











2025-03-08 来自 浙江
1顶
2025-02-22 来自 浙江
1fd
2025-02-22 来自 浙江
1d
2025-02-22 来自 浙江
1d
2025-02-22 来自 浙江
1d
2025-02-22 来自 浙江
1d
2025-02-22 来自 浙江
1#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,M=5e5+5;
int n,m,T,a[N][N];
struct edge{
int id;
bool v;
};
vector<edge> v[M];
int Calpos(int x,int y){
return (x-1)(m+1)+y;
}
void Build(){
for(int i=1;i<=M;i++){
v[i].clear();
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char c;
cin>>c;
int x1=Calpos(i,j);
int x2=Calpos(i,j+1);
int x3=Calpos(i+1,j);
int x4=Calpos(i+1,j+1);
if(c=='/'){
v[x2].push_back({x3,0});
v[x3].push_back({x2,0});
v[x1].push_back({x4,1});
v[x4].push_back({x1,1});
}
else{
v[x2].push_back({x3,1});
v[x3].push_back({x2,1});
v[x1].push_back({x4,0});
v[x4].push_back({x1,0});
}
}
}
}
struct node{
int pos,step;
};
int dis[M];
bool vis[M];
void Bfs(){
deque<node> dq;
dq.push_back({1,0});
memset(vis,0,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
dis[1]=0;
while(!dq.empty()){
int x=dq.front().pos;
dq.pop_front();
if(vis[x]) continue;
vis[x]=1;
for(int i=0;i<v[x].size();i++){
int to=v[x][i].id;
bool f=v[x][i].v;
if(dis[to]>dis[x]+f){
dis[to]=dis[x]+f;
if(f) dq.push_back({to,dis[to]});
else dq.push_front({to,dis[to]});
}
}
}
}
int main(){
cin>>n>>m;
Build();
if((n+m)%2) cout<<"NO SOLUTION\n";
else{
Bfs();
cout<<dis[(n+1)(m+1)]<<'\n';
}
return 0;
}2025-11-01 来自 浙江
0#include<bits/stdc++.h> using namespace std; const int N=10000000; int n,m,x,c,l,r; int a[N],s[N]; vector<int>alls; vector<pair<int,int> >add,query; int find(int x) { return lower_bound(alls.begin(), alls.end(), x) - alls.begin() + 1; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>x>>c; add.push_back({x,c}); alls.push_back(x); } for(int i=1;i<=m;i++){ cin>>l>>r; query.push_back({l,r}); alls.push_back(l); alls.push_back(r); } sort(alls.begin(), alls.end()); alls.erase(unique(alls.begin(), alls.end()), alls.end()); for(auto it:add){ x=find(it.first); a[x]+=it.second; } for(int i=1;i<=alls.size();i++) s[i]=s[i-1]+a[i]; for(auto it:query){ l=find(it.first); r=find(it.second); cout<<s[r]-s[l-1]<<endl; } }2025-10-25 来自 浙江
0





















有帮助,赞一个