牛客CSP-S提高组赛前集训营2 ———— 2019.10.31
2024-10-04 23:10:45
期望得分:100+20+20
实际得分:40+20+30
awa cccc
T1 :基于贪心的思路,然后开始爆搜(雾
那必然是会死的,好吧他就是死了
#include<iostream>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
int n,q,m;
int ans,sum=-;
int a[];
int x,y;
inline int read();
int cha() {
int ans=-;
for(int i=; i<=n; i++)ans=max(ans,a[i]);
return ans;
}
signed main() {
n=read(),m=read(),q=read();
for(int i=; i<=n; i++) {
a[i]=read();
ans+=a[i];
sum=max(a[i],sum);
}
if(sum*m>=ans)cout<<sum<<"\n";
else {
sum=ans/m;
if(ans%m)sum++;
cout<<sum<<"\n";
}
while(q--) {
x=read(),y=read();
ans+=y-a[x];
if(y<a[x]&&a[x]==sum)a[x]=y,sum=cha();
a[x]=y;
if(y>sum)sum=y;
if(sum*m>=ans)cout<<sum<<"\n";
else {
sum=ans/m;
if(ans%m)sum++;
cout<<sum<<"\n";
}
}
return ;
}
inline int read() {
int s=,w=;
char ch=getchar();
while(ch<''||ch>'') {
if(ch=='-')w=-;
ch=getchar();
}
while(ch>=''&&ch<='')
s=(s<<)+(s<<)+(ch^),ch=getchar();
return s*w;
}
T2:题目倒是没看明白,smg
就直接贴了个并查集求连通块个数,,,只拿了20分
20分代码(☄⊙ω⊙)☄:
//20分,k=0的情况,若k!=0,直接return 0,毫不犹豫awa
//看我对评测机多好,希望评测机可以对我好一点
#include<iostream>
#include<cstdio>
#include<cmath>
#define int long long
using namespace std;
int N,M,K,ans;
int pre[];
int find(int a) {
if(pre[a]!=a) pre[a]=find(pre[a]);
return pre[a];
}
void join(int x,int y) {
int fx=find(x),fy=find(y);
if(fx!=fy) pre[fy]=fx;
}
inline int read() {
int s=,w=;
char ch=getchar();
while(ch<''||ch>'') {
if(ch=='-')w=-;
ch=getchar();
}
while(ch>=''&&ch<='')
s=(s<<)+(s<<)+(ch^),ch=getchar();
return s*w;
}
signed main() {
N=read(),M=read(),K=read();
if(K!=){
cout<<M-K+<<endl;
return ;
}
for(int i=; i<=N; i++) pre[i]=i;
for(int i=; i<=M; i++) {
int a,b;
a=read(),b=read();
join(a,b);
}
for(int i=; i<=N; i++) if(pre[i]==i) ans++;
cout<<ans;
return ;
}
T3:暴力模拟30分
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
const int inf=0x3f3f3f3f;
int n,m,f;
int t,l,r,x,y;
int ans;
int a[];
bool vis[];
void gai(int l,int r,int x) {
memset(vis,false,sizeof vis);
for(int i=l; i<=r; i++)a[i]=x;
for(int i=; i<=n; i++)vis[a[i]]=true; }
void cha(int x,int y) {
if(!vis[x]||!vis[y]) {
ans=-;
return;
}
ans=inf;
for(int i=; i<=n; i++)
for(int j=i; j<=n; j++)
if((a[i]==x&&a[j]==y)||(a[i]==y&&a[j]==x)) {
ans=min(ans,abs(i-j));
break;
}
if(ans==inf)ans=-;
}
int lastans;
inline int read() {
int s=,w=;
char ch=getchar();
while(ch<''||ch>'') {
if(ch=='-')w=-;
ch=getchar();
}
while(ch>=''&&ch<='')
s=(s<<)+(s<<)+(ch^),ch=getchar();
return s*w;
}
int main() {
n=read(),m=read(),f=read();
for(int i=; i<=n; i++)
a[i]=read(),vis[a[i]]=true;
for(int i=; i<=m; i++) {
t=read();
if(t==) {
l=read(),r=read(),x=read();
if(f==)l^=lastans,r^=lastans,x^=lastans;
gai(l,r,x);
}
if(t==) {
x=read(),y=read();
if(f)x^=lastans,y^=lastans;
cha(x,y);
cout<<ans<<"\n";
if(ans==-)lastans=;
else lastans=ans;
}
}
return ;
}
最新文章
- Android(Xamarin)之旅(五)
- 4809 江哥的dp题c
- JQuery Event属性说明
- ubuntu 开机显示错误:无法应用原保存的显示器配置
- SharePoint 2013 JQuery Asset Picket
- wx.html2.WebView在 target=";_blank"; or rel=";external"; 没有反映的解决方法
- 汉字转拼音Pinyin4j工具(C#、Java都可用)
- CodeForces 321A
- 拉电流(source current)与灌电流(sink current)
- 大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网
- Spring+struts+ibatis(一)环境准备工作
- 【转】GPS连续运行单参考站解决方案
- AIC与BIC
- 嵌入式Linux开发之uboot启动Linux整体流程分析
- [视频]K8飞刀 WordPress XSS添加管理员 &; GetShell 教程
- 【剑指offer】两个栈实现队列
- (三)Lua脚本语言入门(数组)
- JQ深度手记、源码分析
- Stack — 20181121
- JavaScript的兼容小坑和调试小技巧
热门文章
- springboot2 中Druid和ibatis(baomidou) 遇到org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.iflytek.pandaai.service.multi.mapper.TanancyMapper
- flink 注册函数示例
- spring 事务 XML
- HTML+CSS基础 css的尺寸
- 『大 树形dp』
- ArcGIS随机数生成
- RSA加密方法
- C#下的时间测试(用于计算方法执行时间)
- Python - 运算符 - 第五天
- List的Clear方法与RemoveAll方法用法小结