团队训练记录2024.10.7

news/2024/10/7 19:16:48/文章来源:https://www.cnblogs.com/cjcf/p/18450428

赛时依然和本校强队差两题
比赛链接:https://codeforces.com/gym/104901

A. Many Many Heads

这里先用栈处理好第一个状况,然后根据层数进行第二个状况是否存在判断

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll x,ll y)
{if(y==0)return x;elsereturn gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[250000];
vector<ll>g1[250000],g2[250000];
int main()
{fio();
ll t;
cin>>t;
while(t--)
{stack<pair<ll,ll>>q;string f;cin>>f;for(ll i=0;i<f.size();i++){if(f[i]==')')f[i]='(';if(f[i]==']')f[i]='[';g1[i].clear();g2[i].clear();}for(ll i=0;i<f.size();i++){if(q.empty()){q.push({f[i],i});}else if(q.top().first==f[i]){a[q.top().second]=i;if(f[i]=='[')f[i]=']';else f[i]=')';q.pop();}else {q.push({f[i],i});}}ll cs=0;ll pd=0;priority_queue<ll,vector<ll>,greater<ll>>op;for(ll i=0;i<f.size();i++){if(op.empty()){op.push(a[i]);cs++;}else {if(op.top()==i){op.pop();cs--;if(f[i]==')'){if(g1[cs].size()>0)pd=1;g1[cs].push_back(6);}else {if(g2[cs].size()>0)pd=1;g2[cs].push_back(6);}}else{cs++;op.push(a[i]);}}}if(pd)cout<<"No"<<endl;elsecout<<"Yes"<<endl;
}
}

D. Largest Digit

签到题,暴力即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll x,ll y)
{if(y==0)return x;elsereturn gcd(y,x%y);
}
int main()
{
ll t;
cin>>t;
while(t--)
{ll l1,r1,l2,r2;ll cnt=0;cin>>l1>>r1>>l2>>r2;for(ll i=l1;i<=min(r1,l1+100);i++){for(ll j=l2;j<=min(r2,l2+100);j++){ll ans=0;ans=j+i;while(ans){cnt=max(cnt,ans-ans/10*10);ans/=10;}}}cout<<cnt<<endl;
}
}

G. Gifts from Knowledge

#include<bits/stdc++.h>#define test(i) cout << #i << " "<< i << " " << endl;using namespace std;
typedef long long ll;const ll N = 3e6 + 10;
const ll mod = 1e9 + 7;ll t, n, m;
string str[N];
ll a[N];
vector<ll> vis[N];void fio() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}void init_set(int n) {for (int i = 0; i <= 2 * n + 1; i++) {a[i] = i;}
}int find_set(int x) {if (x != a[x]) a[x] = find_set(a[x]); //压缩路径return a[x];
}void merge_set(int x, int y) {x = find_set(x);y = find_set(y);if (x != y) a[x] = y; //x以y为父}signed main()
{fio();cin >> t;while (t--) {cin >> n >> m;init_set(n+5);for (int i = 0; i <= m; i++) {vis[i].clear();}for (int i = 1; i <= n; i++) {cin >> str[i];}//i是不翻,i+n翻ll flag = 0;for (int i = 1; i <= n; i++) {for (int j = 0; j < m; j++) {if (str[i][j] == '1') {vis[j + 1].push_back(i);}}}for (int i = 1; i <= m; i++) {//cout << vis[i].size() << endl;if (vis[i].size() + vis[m - i + 1].size() > 2) {flag = 1;}if (vis[i].size() == 1&&vis[m-i+1].size()>0) {merge_set(vis[i][0], vis[m - i + 1][0]);merge_set(vis[i][0] + n, vis[m - i + 1][0] + n);}else if (vis[i].size() == 2) {merge_set(vis[i][0] + n, vis[i][1]);merge_set(vis[i][0], vis[i][1] + n);}}for (int i = 1; i <= n; i++) {if (find_set(i) == find_set(i + n)) flag = 1;}if (flag) {cout << 0 << endl;continue;}ll ans = 1;ll cc = 0;for (int i = 1; i <= 2 * n; i++) {if (a[i] == i) {cc++;}}cc /= 2;//cout << cc << endl;while (cc) {cc--;ans %= mod;ans *= 2;ans %= mod;}cout << ans % mod << endl;}return 0;
}

I. Strange Sorting

对于一个左边界,右边界越大越好

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll x,ll y)
{if(y==0)return x;elsereturn gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[250];
vector<pair<ll,ll>>g;
int main()
{fio();
ll t;
cin>>t;
while(t--)
{g.clear();ll n;cin>>n;for(ll i=1;i<=n;i++)cin>>a[i];while(1){ll l=0,r=0;for(ll i=1;i<=n;i++){if(a[i]!=i){l=i;break;}}if(l==0)break;for(ll i=n;i>=1;i--){if(a[i]<a[l]){r=i;break;}}g.push_back({l,r});sort(a+l,a+r+1);}cout<<g.size()<<endl;for(auto j:g){cout<<j.first<<" "<<j.second<<endl;}
}
}

K. Rainbow Subarray

用权值线段树+离散化实现中位数查找,然后维护一个中位数即可

//不用主席树,用权值线段树+离散化照样可以,qoj1000ms多过了
#include<iostream>
#include<queue>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
const ll maxn = 5e5 + 10;
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
struct s
{ll l, r;ll cs;
}p[maxn << 2];
ll fa[maxn << 2];
void build(ll i, ll l, ll r)
{p[i].l = l; p[i].r = r;p[i].cs = 0;if (l == r){//cout<<99<<endl;fa[l] = i;return;}build(i << 1, l, (l + r) >> 1);build(i << 1 | 1, (l + r >> 1) + 1, r);
}
void upd(ll i, ll x)
{if (p[i].l == p[i].r){p[i].cs++;//cout<<p[i].cs<<endl;return;}ll mid = (p[i].l + p[i].r) >> 1;ll i1 = i << 1;ll i2 = i << 1 | 1;if (x <= mid)upd(i1, x);if (x >= mid + 1)upd(i2, x);p[i].cs = p[i1].cs + p[i2].cs;//cout<<p[i].cs<<endl;
}
void dt(ll i, ll x)
{if (p[i].l == p[i].r){p[i].cs--;//cout<<p[i].cs<<endl;return;}ll mid = (p[i].l + p[i].r) >> 1;ll i1 = i << 1;ll i2 = i << 1 | 1;if (x <= mid)dt(i1, x);if (x >= mid + 1)dt(i2, x);p[i].cs = p[i1].cs + p[i2].cs;
}
ll query(ll i, ll l, ll r)
{ll ans = 0;if (l == p[i].l && p[i].r == r){ans += p[i].cs;return ans;}ll i1 = i << 1;ll i2 = i << 1 | 1;if (l <= p[i1].r){if (r <= p[i1].r){ans += query(i1, l, r);}elseans += query(i1, l, p[i1].r);}if (r >= p[i2].l){if (l >= p[i2].l)ans += query(i2, l, r);elseans += query(i2, p[i2].l, r);}return ans;
}
ll sa(ll i, ll k, ll l, ll r)
{if (l == r){return l;}ll ans = 0;ll i1 = i << 1, i2 = i << 1 | 1;if (k <= p[i1].cs){ans = sa(i1, k, l, p[i1].r);}elseans = sa(i2, k - p[i1].cs, p[i2].l, r);return ans;
}
ll a[500005];
ll b[500005];
map<ll, ll>q;
set<ll>f;
int main()
{fio();ll t;cin >> t;while (t--){q.clear();f.clear();ll n, m;cin >> n >> m;for (ll i = 1; i <= n; i++){cin >> a[i];a[i] -= i;f.insert(a[i]);}ll cnt = 0;for (auto j : f){cnt++;q[j] = cnt;b[cnt] = j;}deque<ll>co;build(1, 1, cnt);ll sz = 0;ll ans = 0;ll op;ll an = 1;for (ll i = 1; i <= n; i++){if (co.empty()){co.push_back(a[i]);upd(1, q[a[i]]);sz++;op = b[sa(1, (sz + 1) / 2, 1, cnt)];ans = 0;}else{co.push_back(a[i]);ans += abs(a[i] - op);upd(1, q[a[i]]);sz++;ll mid = b[sa(1, (sz + 1) / 2, 1, cnt)];if (mid > op){ans += ((sz - 1) / 2) * abs(op - mid);ans -= (sz - ((sz - 1) / 2)) * abs(op - mid);}else if (mid < op){ans -= ((sz + 1) / 2) * abs(op - mid);ans += (sz - (sz + 1) / 2) * abs(op - mid);}while (!co.empty() && ans > m){op = mid;ans -= abs(co.front() - mid);dt(1, q[(ll)co.front()]);sz--;mid = b[sa(1, (sz + 1) / 2, 1, cnt)];if (mid > op){ans -= ((sz + 1) / 2) * abs(op - mid);ans += (sz - (sz + 1) / 2) * abs(op - mid);}op = mid;co.pop_front();}op = mid;an = max(an, (ll)co.size());}}cout << an << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在C#中使用适配器Adapter模式和扩展方法解决面向的对象设计问题

之前有阵子在业余时间拓展自己的一个游戏框架,结果在实现的过程中发现一个设计问题。这个游戏框架基于MonoGame实现,在MonoGame中,所有的材质渲染(Texture Rendering)都是通过SpriteBatch类来完成的。举个例子,假如希望在屏幕的某个地方显示一个图片材质(imageTexture)…

React Fiber 原理

React Fiber 在 React 16 之前的版本对比更新 VirtualDOM 的过程是采用 Stack 架构实现的,也就是循环加递归,这种方式的问题是一旦任务开始进行就无法被中断。 如果应用中的组件数量庞大, Virtual DOM 的层级比较深,主线程被长期占用,知道整颗 Virtual DOM 树比对更新完成…

视野修炼-技术周刊第104期 | 下一代 JavaScript 工具链

① 🐙 尤大创办公司 VoidZero ② Tauri 2.0 稳定版发布 ③ Vite 时髦的新主页 ④ qrframe - 漂亮二维码生成 ⑤ HTTP QUERY 方法提案 ⑥ TinyJS - 轻量级的创建DOM元素 ⑦ 9月 Web 平台的新功能 ⑧ ESLint 现在正式支持 Linting JSON 和 Markdown欢迎来到第 104 期的【视野修…

雅礼国庆集训 day1 T2 折射

题面 题面下载 算法 转化题意 说白了就是给了你一堆点,让你数这种折线有多少个 (严格向下走,并且横坐标之间的差越来越小)看着像一种在 y 轴方向排序的 dp 但是由于是折线, 所以需要加一维来判断转向 dp 设计 状态设计 \(dp_{i, 0/1}\) 表示第 i 个点, 是向左下还是右上 状态…

React 中的 diff 算法

React diff为什么使用虚拟 DOM ? 浏览器在处理 DOM 的时候会很慢,处理 JavaScript 会很快,页面复杂的时候,频繁操作 DOM 会有很大的性能开销(每次数据变化都会引起整个 DOM 树的重绘和重排)。 为了避免频繁操作 DOM,React 会维护两个虚拟 DOM,如果有数据更新,会借此计…

20222315 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 1.掌握反汇编与十六进制编程器 2.能正确修改机器指令改变程序执行流程 3.能正确构造payload进行bof攻击 2.实验过程 1.直接修改程序机器指令,改变程序执行流程 将pwn1文件下载至kali中并将pwn1文件改名为pwn20222315,并将其内容复制到pwn2反汇编文件objdump -d…

多校A层冲刺NOIP2024模拟赛03

多校A层冲刺NOIP2024模拟赛03\(T1\) A. 五彩斑斓(colorful) \(90/100pts\)部分分\(20pts\) :枚举左上 \((k,h)\) 、右下端点 \((i,j)\) ,时间复杂度为 \(O(n^{2}m^{2})\) 。 \(90/100pts\) :当 \(a_{i,j} \ne a_{k,j}\) 时任意的 \(h \in [1,j]\) 都符合题意、不妨钦定 \(…

Word中 Endnote 引用标蓝色

1. 打开word中的endnote加载项。如图所示,勾选这两个设置。 确认后会自动变为超链接,显示蓝色以及下划线。 2. 在样式设置中,将超链接的下划线取消。之后就会只显示蓝色引用。 结果显示:

中国大学生程序设计竞赛(秦皇岛)正式赛东北大学秦皇岛分校(SMU Autumn 2024 Team Round 1)

中国大学生程序设计竞赛(秦皇岛)正式赛东北大学秦皇岛分校(SMU Autumn 2024 Team Round 1) Problem A. 贵校是构造王国吗 I 思路 官方题解很清晰明了。代码 #include <bits/stdc++.h> using namespace std; #define int long long #define endl \n #define PII pair&…

多校 A 层冲刺 NOIP2024 模拟赛 03

多校 A 层冲刺 NOIP2024 模拟赛 03 T1 五彩斑斓(colorful) 签到题 直接暴力枚举是 \(O(n^4)\) ,考虑使用 \(bitset\) 优化,对每个点开个 \(bitset\),预处理它所在一行它及它之前相同颜色的位置,这样就只用枚举另一个点所在列,时间复杂度为 \(O(n^3+\frac{n^4}{w})\)。 T…

在浏览器上访问媒体资源配置【文件上传】

1.根urls.py文件中 from django.contrib import admin from django.urls import path, include, re_path from django.views.static import serve from django.conf import settingsurlpatterns = [# path(admin/, admin.site.urls),path(api/shipper/, include(apps.shipper.u…