当前位置: 首页 > news >正文

9.21记录

9.21记录

​ 这一天是协会换届,结束之后心里有那么些空落落的感觉。之前有什么事情都是学长学姐一点点操办着,很多事情就好像是理所应当一样。现在才感觉到之前那些事情做的多么不容易。一个下午基本没怎么停过,一件件事情接踵而至,后面的事情只会越来越多,越发感觉时间不够用。我希望能利用好时间,平衡好协会的事情和自己的学习。晚上刚好有一把牛客周赛,我想着时间应该打不满,有事耽搁了一会。最后开的那道其实不难,等想的差不多了也没时间了,做题过程也不算顺利。打完觉得非常不甘心,外面下着小雨天气非常舒服,于是去操场跑了一会。回来感觉舒服多了,正好十点过了一会再来一把cf,真是快哉快哉!这场div2打的也一般,开学正式赛打的太少了,赛时没有暑假的那种感觉了。以后有比赛还是尽量打。

小苯的平衡序列

既然想要让∑i=1n∣ai−median∣\sum_{i=1}^{n} |a_i - \text{median}|i=1naimedian的值尽量小,那么肯定去除最小或者最大的。需要注意的是,这两个中位数不一样!

void solve()
{cin >> n;for(int i=1; i<=n; i++) cin >> a[i];int an1=0,an2=0;sort(a+1,a+1+n);for(int i=1; i<=n; i++){if(i==n/2) continue;an1+=abs(a[i]-a[n/2+1]);}for(int i=1; i<=n; i++){if(i==n) continue;an2+=abs(a[i]-a[n/2]);}cout << min(an1,an2) << endl;
}

B. Merging the Sets

如果某个元素只出现了一次的话这个集合就必须选。将所有必须选的捆绑到一起。如果非必选的有两个及以上的话就能组合成4种及以上了

这题不算难,刚好复习一下二维vector的使用。。。

void solve()
{cin >> n >> m;map<int,int> mp;vector<vector<int>> v;// vector<vector<int>> v(row,vector<int>(line,val));for(int i=1; i<=n; i++){int l;cin >> l;vector<int> tt;tt.push_back(l);for(int j=1; j<=l; j++){int x;cin >> x;tt.push_back(x);mp[x]++;}v.push_back(tt);}for(int j=1; j<=m; j++){if(mp[j]==0){cout <<"NO" << endl;return ;}}int num=0;for(int i=0; i<n; i++){for(int j=1; j<=v[i][0]; j++){if(mp[v[i][j]]==1){num++;break;} }}if(n-num>=2) cout << "YES" << endl;else cout << "NO" << endl;
}

C. Wrong Binary Search

这题其实看样例就能猜出来。当时一直被卡,其实就是最后没特判。。。过了一天一下就看出来了。。。思路差不多就是实现方法和正解不太一样,正好又熟悉二维vector了。

可以发现当s[i]=1的时候a[i]=i,否则一定不一样。也就是说在每个s[i]=0的区间内要想办法让a[i]!=i。如果此时0区间的长度为1的话肯定不行(一定要注意当开头或结尾长度为1的情况!)我用一个二维vector,如果s[i]=1就单独放一行,如果是0的话将这个0区间放进去。最后每一行都逆序输出就行了。

// Problem: Wrong Binary Search
// Contest: Virtual Judge - CodeForces
// URL: https://vjudge.net/problem/CodeForces-2146C#author=GPT_zh
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// Submission Time: 2025-09-22 18:10:57#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second 
#define endl '\n'
const int INF = 1e18;
const int N = 1e6+5;
int a[N];
int n,m;
string s;
void solve()
{cin >> n >> s;int kk=-1;if(s[n-2]=='1'&&s[n-1]=='0'){cout << "NO" << endl;return ;}for(int i=0; i<n; i++){if(s[i]=='1'){if(i-kk==2){cout << "NO" << endl;return ;}kk=i;}}cout << "YES" << endl;vector<vector<int>> v;vector<int> tt;for(int i=0; i<n; i++){if(s[i]=='1'){if(tt.size())v.push_back(tt);tt.clear();vector<int> t={i+1};v.push_back(t);continue;}tt.push_back(i+1);}if(tt.size()) v.push_back(tt);for(int i=0; i<v.size(); i++){for(int j=v[i].size()-1; j>=0; j--) cout << v[i][j] << ' ';}cout << endl;
}
signed main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T=1;cin >> T;while(T--) solve();return 0;
}

如果时间能岔开还是要多打现场赛,这些题其实不难,可能放前一段时间都能在赛时把它们做出来了。

http://www.dtcms.com/a/404167.html

相关文章:

  • 传媒公司做网站条件公司网站优化外包
  • 仓颉编程语言青少年基础教程:异常处理
  • 政务网站建设及管理搜索引擎优化的名词解释
  • AP2协议与AI Agent经济:重塑金融生态与主权国家挑战
  • 机器学习之损失函数
  • 语义三角论对人工智能自然语言处理的深层语义分析的影响与启示
  • 佛山市住房和城乡建设部网站姓氏变logo设计免费生成
  • DOS与DDOS攻击防御详解
  • 【Git】基本概念 + 基操
  • 建设优化网站wordpress侧导航菜单
  • 网站建设项目执行情况报告模板手机wap网站下载
  • 【笔试强训】Day01
  • 网站的想法夫唯seo
  • 阿里云建站套餐旅游网站排行榜前十名官网
  • 上饶网站开发 app开发做移动网站点击软件
  • 常州微信网站建设流程北京免费模板建站
  • AKS论文阅读
  • 快捷的赣州网站建设网站开发的逻辑
  • 【图论】【数据结构】图的深度优先与广度优先遍历、最短路径
  • 制作网站作业wordpress设置关键字
  • 网站建设 seo模块泉州企业网站维护定制
  • 如何做音乐分享类网站个人网页制作模板田田田田田田田田
  • 网站建设需求说明书怎么写做婚礼效果图的网站有哪些
  • 温州免费建站私密浏览器视频
  • 速通ACM省铜第十四天 赋源码(Coloring Game)
  • 淮安做网站seo海南省建设注册执业资格中心网站
  • 阿里云 PAI 携手 NVIDIA 提供端到端物理 AI 解决方案
  • 如何用织梦程序制作多个页面网站承接电商网站建设
  • location配置 rewrite配置
  • 建设网站查证书哈尔滨网站建设教学