Codeforces Round #673 (Div. 2)——待补 E

由于开学了,一般晚上就不打cf了(太晚了,寝室不太适合打),而且赛后也懒得vp,有时候会在图书馆口胡题目,然后回寝室补一补,不过我也写得太久了吧,很多细节疯狂wa

A - Copy-paste

不难发现排序后答案就是⌊k−a2a1⌋+⌊k−a3a1⌋+⌊k−a4a1⌋+⋯+⌊k−ana1⌋\lfloor \frac{k-a_2}{a_1}\rfloor+\lfloor \frac{k-a_3}{a_1}\rfloor+\lfloor \frac{k-a_4}{a_1}\rfloor+\dots+\lfloor \frac{k-a_n}{a_1}\rfloora1ka2+a1ka3+a1ka4++a1kan

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1010;
int a[N];
int n,k;
int main()
{IO;int T=1;cin>>T;while(T--){cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+1+n);ll res=0;for(int i=2;i<=n;i++) res+=(k-a[i])/a[1];cout<<res<<'\n';}return 0;}

B - Two Arrays

贪心分组,排序后双指针扫描。
注意:ai=aja_i=a_jai=aj并且 ai+aj=Ta_i+a_j=Tai+aj=T的情况,平均分组。
这个方法写了很久,当然也可以用map直接记录,不需要双指针而且也比较友好。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;
const int N=100010;
pii a[N];
int n,m;
int pos[N];
int main()
{IO;int T=1;cin>>T;while(T--){cin>>n>>m;for(int i=1;i<=n;i++) {cin>>a[i].first;a[i].second=i;pos[i]=-1;}sort(a+1,a+1+n);for(int i=1,j=n;i<j;i++){while(j>i&&a[i].first>m-a[j].first) pos[a[j--].second]=0;while(j>i&&a[i].first==m-a[j].first) {if(a[i].first==a[j].first){pos[a[i++].second]=0;pos[a[j--].second]=1;}else pos[a[j--].second]=1;}if(j>=i) pos[a[i].second]=0;}for(int i=1;i<=n;i++) {if(pos[i]!=-1)cout<<pos[i]<<' ';elsecout<<0<<' ';}cout<<'\n';}return 0;}

C - k-Amazing Numbers

预处理pos[i]表示值是i数组出现的位置,可以用vector存储,然后如果每两个值之间的最大距离是len(注意开头和结尾)那么i就可以作为长度为len的一个子串的答案。然后随便搞搞就行了

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=300010;
int a[N];
int n;
vector<int> pos[N];
int len[N];
int ans[N];
int main()
{IO;int T=1;cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++) {pos[i].clear();len[i]=0;ans[i]=-1;}for(int i=1;i<=n;i++){cin>>a[i];pos[a[i]].push_back(i);}for(int i=1;i<=n;i++){int m=pos[i].size();for(int j=1;j<m;j++) len[i]=max(len[i],pos[i][j]-pos[i][j-1]);if(m){len[i]=max(len[i],pos[i][0]);len[i]=max(len[i],n+1-pos[i][m-1]);}}for(int i=1;i<=n;i++)if(ans[len[i]]==-1) ans[len[i]]=i;int now=-1;for(int i=1;i<=n;i++){if(ans[i]==-1) cout<<now<<' ';else{if(now==-1) now=ans[i];else now=min(ans[i],now);cout<<now<<' ';}}cout<<'\n';}return 0;}

D - Make Them Equal

首先先把所有值搞到a1a_1a1上,最多需要2(n−1)2(n-1)2(n1)次操作:如果ai%i=0a_i\%i=0ai%i=0一次操作就可以否则需要先用a1a_1a1去把aia_iai调整成iii的倍数,然后再需要一次操作。
然后直接用a1a_1a1把所有值搞成平均数即可最多n−1n-1n1次操作。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
int a[N],n;
struct node
{int l,r,x;
};
vector<node> ans;
int main()
{IO;int T=1;cin>>T;while(T--){ans.clear();cin>>n;int s=0;for(int i=1;i<=n;i++) {cin>>a[i];s+=a[i];}if(s%n){cout<<-1<<'\n';continue;}s/=n;for(int i=2;i<=n;i++){int p=a[i]%i;if(p){a[1]+=a[i];ans.push_back({1,i,i-p});ans.push_back({i,1,a[i]/i+1});a[i]=0;}else{a[1]+=a[i];ans.push_back({i,1,a[i]/i});}}for(int i=2;i<=n;i++)ans.push_back({1,i,s});cout<<ans.size()<<'\n';for(auto t:ans) cout<<t.l<<' '<<t.r<<' '<<t.x<<'\n';}return 0;
}

E - XOR Inverse

待补,本来在图书馆都想好咋做了,然后回来补题时候发现不咋对。。。
要加油哦~

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

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

相关文章

【每日一题】8月25日题目精讲 XOR-pyramid

文章目录题目描述&#xff1a;题解&#xff1a;代码&#xff1a;题目描述&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/problem/112798 来源&#xff1a;牛客网 输入描述: 输出描述: Print q lines — the answers for the queries. 示例1 输入 复制 3 8 4 1…

AT3611-Tree MST【点分治,最小生成树】

正题 题目链接:https://www.luogu.com.cn/problem/AT3611 题目大意 给出nnn个点的一棵树。 现在有一张完全图&#xff0c;两个点之间的边权为wxwydis(x,y)w_xw_ydis(x,y)wx​wy​dis(x,y)&#xff08;disdisdis表示树上距离&#xff09; 求这张完全图的最小生成树。 2≤n≤…

【LCT】大融合(luogu 4219)

正题 luogu 4219 题目大意 给你一棵树&#xff08;初始都无连边&#xff09;&#xff0c;让你进行以下操作&#xff1a; 1.连接两个点 2.查询一条边被多少条路径经过 解题思路 因为有边的修改&#xff0c;可以用LCT来维护这棵树 一条边的经过次数&#xff0c;就相当于连接…

申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

要进行Office 365开发&#xff0c;当然需要有完整的Office 365环境才可以。为了便于广大开发人员快速地启动这项工作&#xff0c;微软官方给所有开发人员提供了免费的一年开发者账号那么如何申请Office 365一年免费的开发者账号呢&#xff1f;网上已经有一些攻略了&#xff0c;…

Codeforces Round #674 (Div. 3)

突如其来的div3&#xff0c;赛后打了一下。 A - Floor Number 数学题答案是1⌈n−2x⌉1\lceil \frac{n-2}{x} \rceil1⌈xn−2​⌉ #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<iostream> #include<algorithm&…

【每日一题】8月28日题目精讲 编号

【每日一题】8月28日题目精讲 编号 链接&#xff1a;https://ac.nowcoder.com/acm/problem/19925 来源&#xff1a;牛客网 题目描述 你需要给一批商品编号&#xff0c;其中每个编号都是一个7位16进制数&#xff08;由0~9, a-f组成&#xff09;。为了防止在人工处理时不小心把编…

P4321-随机漫游【状压dp,数学期望,高斯消元】

正题 题目链接:https://www.luogu.com.cn/problem/P4321 题目大意 给出nnn个点mmm条边的一张无向图&#xff0c;qqq次询问。 每次询问给出一个点集和一个起点&#xff0c;求从起点出发随机游走经过所有点集的期望步数。 n∈[1,18],m∈[1,n(n−1)2],q∈[1,105]n\in[1,18],m\i…

开源若要天下闻,掌声须给教育人

引子故事一当我们介绍 Linux Kernel 项目历史的时候&#xff0c;我们会如此说&#xff1a;“1991 年&#xff0c;赫尔辛基大学的大学生 Linus torvald, 在自己的电脑上开发了一个能够运行在 X86 架构上的操作系统&#xff0c;并将它发布在互联网上&#xff0c;任何人都可以参与…

纪中A组模拟赛总结(2021.7.22)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4141414lyflyflyf101010000101010000000总结 T1明显状压&#xff0c;求方案感觉可以用容斥&#xff0c;但又发现假了&#xff0c;就跳过了 T2想找找有没有规律&#xff0c;就把表打了出来&#xff0c;但…

【模板】线性基

ACM模板 文章目录构造线性基线性基模板操作线性基相关题目学习线性基可考虑以下大佬博客 知乎Pecco博客 博客园Kaori博客 menci博客 肖然博客 从线性代数谈线性基&#xff08;有点硬核&#xff09; 构造线性基 普通插入&#xff1a; 不能保证除了主元上其他线性基元素该位置为…

【每日一题】8月27日题目精讲 Is It A Tree?

链接&#xff1a;https://ac.nowcoder.com/acm/problem/105905 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 10000K&#xff0c;其他语言20000K 64bit IO Format: %lld 题目描述 A tree is a well-known data struct…

YbtOJ#631-次短路径【左偏树,最短路】

正题 题目链接:https://www.ybtoj.com.cn/contest/114/problem/1 题目大意 给出nnn个点mmm条边的一张无向图&#xff0c;对于每个点iii求不经过i∼1i\sim 1i∼1的最短路的第一条边的情况下iii到111的最短路 数据保证这条边唯一 n∈[1,105],m∈[1,2105],c∈[1,103]n\in[1,10^…

好代码是管出来的——使用Jenkins搭建CI服务器

Jenkins是一个开源的跨平台的CI工具&#xff0c;它可以部署在Windows、Linux等平台上&#xff0c;并且Jenkins提供了非常丰富的插件来帮助完成编译、测试、部署等工作。  本文将介绍在Windows平台上使用Jenkins完成.Net Core应用的持续集成环境搭建&#xff0c;其主要内容有&…

牛客练习赛 59

A.小乔和小灰灰 前几天刚刚学了序列自动机&#xff0c;这题直接也没咋想暴力的做法&#xff0c;直接上序列自动机匹配子序列即可。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<iostream> #include<algorithm&…

【图论】清理牛棚/Cleaning Shifts S(luogu 4644)

正题 luogu 4644 题目大意 给你一段时间&#xff0c;有n头奶牛&#xff0c;第i头可以花费sis_isi​的代价清理lil_ili​到rir_iri​&#xff0c;问你清理完所有时间段的最小代价 解题思路 所有点需求都为1的线性规划&#xff0c;直接代入最短路就可以了 code #include<q…

1153 Decode Registration Card of PAT (25分)

1153 Decode Registration Card of PAT (25分) 题意&#xff1a; 给出一组学生的准考证号和成绩 准考证号组成为&#xff1a;考试等级&#xff08;TAB&#xff09;&#xff0c;考场号&#xff08;从101到999&#xff09;&#xff0c;考试日期&#xff08;yymmdd&#xff09;&…

YbtOJ#893-带权的图【高斯消元,结论】

正题 题目链接:https://www.ybtoj.com.cn/problem/893 题目大意 给出一张nnn个点mmm条边的无向联通图&#xff0c;每条边正反向各有A,B,CA,B,CA,B,C三种边权。 保证满足 Ax,y−Ay,x,Bx,yBy,x,Cx,y−Cy,xA_{x,y}-A_{y,x}\ ,\ B_{x,y}B_{y,x}\ ,\ C_{x,y}-C_{y,x}Ax,y​−Ay,x​…

.Net Core 2.1 通用主机(Core 在控制台应用程序中的应用)

一、介绍官方文档中说&#xff0c;Microsoft.AspNetCore.App 元包&#xff08;ASP.NET Core 2.1 或更高版本&#xff09;包含通用主机的Microsoft.Extensions.Hosting包&#xff0c;当创建控制台项目以后并没有相应的包。在官方案例中所用的Nuget包有&#xff1a;1. Microsoft.…

【二分】【最小生成树】公路修建问题(P2323)

正题 P2323 题目大意 给你n个点和若干边&#xff0c;每条边有两种代价&#xff0c;问你选择n-1条边使得这n个点连通&#xff0c;且选择第一种代价的边不小于k&#xff0c;让你使代价最大值最小 解题思路 二分答案&#xff0c;然后最小生成树&#xff0c;连接可以连得边&…

PAT 1152 Google Recruitment (20 分)- 甲级

题意 给出一个L长的字符串&#xff0c;求出其中第一个k位长的素数 题解&#xff1a; 其实就是暴力求解&#xff0c;不过在这介绍一个函数 int numstoi(s); s是string型的&#xff0c;stoi可以将string转换成int型 string f_str std::to_string(f); 是将int型转化成string型…