主页
搜索
最近更新
数据统计
申请密钥
批量保存
开发版网站(新前端)
系统公告
1
/
1
请查看完所有公告
蒟蒻的来做梦8.27总结
最后更新于 2025-08-27 23:05:39
作者
Internet_Explorer_14
分类
个人记录
复制 Markdown
查看原文
转到新前端
删除文章
更新内容
~~应该没人写了笔记吧但还是放一个黑板~~:  # [U593635 交换](https://www.luogu.com.cn/problem/U593635) ~~这题太难了不会写。~~ ```cpp #include<iostream> using namespace std; int x,y,z; int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>x>>y>>z; cout<<z<<' '<<x<<' '<<y; return 0; } ``` # [T643661 猜猜芭蕾舞剧将如何结束](https://www.luogu.com.cn/problem/T643661?contestId=272832) 用l,r记录左右边界,看会不会重合。 ```cpp #include<iostream> using namespace std; using ll=long long; ll r,n,mc,pp; int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>r>>n; pp=r; for(int i=0;i<n;i++){ ll x; cin>>x; if(x<0){ mc=max(0ll,mc+x);//x是负的,所以是加 pp=max(0ll,pp+x); }else{ mc=min(r,mc+x); pp=min(r,pp+x); } } if(mc==pp){//凑一起了 cout<<mc; }else{ cout<<-1; } return 0; } ``` # [U593638 操作](https://www.luogu.com.cn/problem/U593638) 数学,整除就能到0,不能就看余数。 ```cpp #include<iostream> using namespace std; long long n,k; int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>n>>k; cout<<min(n%k,//余数 k-n%k);//如果n整除k,答案是0 return 0; } ``` # [U593645 操作2](https://www.luogu.com.cn/problem/U593645) 二分成大了和小了两半,然后前缀和出两边的差。 ```cpp #include<iostream> #include<vector> #include<algorithm> using namespace std; using ll=long long; ll n,q; vector<ll>v,fn; int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>n>>q; v.resize(n); for(auto &&i:v){ cin>>i; } sort(v.begin(),v.end()); fn.resize(n); fn[0]=v[0]; for(int i=1;i<n;i++){ fn[i]=fn[i-1]+v[i]; } while(q--){ ll x; cin>>x; ll p=lower_bound(v.begin(),v.end(),x)-v.begin();//分界点 ll ans=0; if(p>0){ ans+=x*p-fn[p-1]; ans+=fn[n-1]-fn[p-1]-(n-p)*x; }else if(p==0){//fn[p-1]不可行 ans=fn[n-1]-n*x;//那就删掉 } cout<<ans<<'\n'; }; return 0; } ``` # [U593646 落落的去的数学问题五](https://www.luogu.com.cn/problem/U593646) 队列,前数变后数,一个一个数。 ```cpp #include<iostream> #include<queue> using namespace std; using ll=long long; ll k; queue<ll>q; int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>k; for(ll i=1;i<=9;i++){ q.push(i); } { ll cnt=0; while(q.size()){ ll p=q.front(); q.pop(); cnt++; if(cnt==k){ cout<<p<<'\n'; break; } for(ll f=p%10-1;f<=p%10+1;f++){//拼好数 if(f<0||f>9){ continue; } q.push(p*10+f); } } } return 0; } ``` 本页面的全部内容在[CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh-hans) 和 [SATA](https://github.com/zTrix/sata-license) 协议之条款下提供,附加条款亦可能应用
正在渲染内容...
点赞
0
收藏
0