欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > CF每日5题(1400)

CF每日5题(1400)

2025/4/3 3:27:48 来源:https://blog.csdn.net/2301_79881289/article/details/146882513  浏览:    关键词:CF每日5题(1400)

感觉1400的题练的差不多了?也可能是今天盲抽到很多水题。
明天练1500,今晚上早点睡觉。

1-799B 模拟 优先队列

  • 使用优先队列找最便宜的衣服 根据衣服上的颜色分队列
  • 如何确定衣服已经卖出?维护一个vis数组,判断卖出了就把它弹出队列。
const int N=2e5+10;
struct ts{int p,a,b,id;bool operator<(const ts&x)const{//优先队列默认是大顶堆,所以小于号要变成大于号return p>x.p;}
}t[N];
int vis[N];
priority_queue<ts>q[4];
void buy(int i){bool fg=0;//能不能买到while (!q[i].empty()){ts tp=q[i].top();if(vis[tp.id])q[i].pop();//之前买过了else{//没买过vis[tp.id]=1;q[i].pop();fg=1;return cout<<tp.p<<' ',void();}}if(fg==0)cout<<-1<<' ';
}
void solve(){int n;cin>>n;forr(i,1,n)cin>>t[i].p;forr(i,1,n)cin>>t[i].a;forr(i,1,n)cin>>t[i].b;forr(i,1,n){t[i].id=i;if(t[i].a==t[i].b)q[t[i].a].push(t[i]);else{q[t[i].a].push(t[i]);q[t[i].b].push(t[i]);}}int m;cin>>m;forr(i,1,m){int x;cin>>x;buy(x);}
}

2-416A 水题 模拟

const int N=2e9;
map<string,string>op={{">=","<"},{"<",">="},{"<=",">"},{">","<="}};
void solve(){int l=-N,r=N;int n;cin>>n;forr(i,1,n){string s,jud;int num;cin>>s>>num>>jud;if(jud=="N"){s=op[s];//变成反向符号}if(s==">=")l=max(num,l);if(s==">")l=max(num+1,l);if(s=="<")r=min(num-1,r);if(s=="<=")r=min(num,r);// cout<<l<<' '<<r<<endl;}if(l<=r)cout<<l;else cout<<"Impossible"<<endl;
}

3- 710B 水 排序

  • 注意是找距离相同时最左边的数
  • 考虑 a , b a,b a,b两数,对任意 x , a ≤ x ≤ b x,a\leq x\leq b x,axb,到 a , b a,b a,b两点距离和一样,但是题意要求输出 a a a
void solve(){int n;cin>>n;vector<int>a(n);forr(i,1,n)cin>>a[i-1];sort(a.begin(),a.end());int ans;if(n%2==0)ans=a[n/2-1];else ans=a[n/2];cout<<ans<<endl;
}

4- 377B 水 数学

void solve(){int a,b,c,d;cin>>a>>b>>c>>d;// if(a*d==b*c)return cout<<0<<endl,void();int ma=max(a*d,b*c),mi=min(a*d,b*c);int u=ma-mi,dd=ma;int g=__gcd(u,dd);cout<<u/g<<'/'<<dd/g<<endl;
}

5- 1130C 搬砖水题 bfs 暴力

const int N=55;
char mp[N][N];
int vis[N][N];
int dx[4]={0,0,-1,1},dy[4]={1,-1,0,0};
int n;
struct pos{int x,y;};
inline bool jud_in(int x,int y){return x>=1&&x<=n&&y>=1&&y<=n;
}
void solve(){cin>>n;int r1,c1,r2,c2;cin>>r1>>c1>>r2>>c2;forr(i,1,n){string s;cin>>s;forr(j,1,n){mp[i][j]=s[j-1];}}queue<pos>q;vector<pos>bg,ed;q.push({r1,c1});bg.push_back({r1,c1});vis[r1][c1]=1;while (!q.empty()){int qx=q.front().x,qy=q.front().y;q.pop();forr(i,0,3){int nx=qx+dx[i],ny=qy+dy[i];if(jud_in(nx,ny)&&mp[nx][ny]=='0'&&vis[nx][ny]==0){if(nx==r2&&ny==c2)return cout<<0<<endl,void();vis[nx][ny]=1;q.push({nx,ny});bg.push_back({nx,ny});}}}q.push({r2,c2});ed.push_back({r2,c2});vis[r2][c2]=1;while (!q.empty()){int qx=q.front().x,qy=q.front().y;q.pop();forr(i,0,3){int nx=qx+dx[i],ny=qy+dy[i];if(jud_in(nx,ny)&&mp[nx][ny]=='0'&&vis[nx][ny]==0){vis[nx][ny]=1;q.push({nx,ny});ed.push_back({nx,ny});}}}int ans=50*50*2+5;for(auto b:bg){for(auto e:ed){ans=min(ans,(e.x-b.x)*(e.x-b.x)+(e.y-b.y)*(e.y-b.y));}}cout<<ans<<endl;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词