当前位置: 首页 > 编程日记 > 正文

Codeforces Round #466 (Div. 2)

http://codeforces.com/contest/940

A水题

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=100000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;int a[N];
int main()
{int n,d;scanf("%d%d",&n,&d);for(int i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);int minn=100000;for(int i=0;i<n;i++){bool ok=0;for(int j=i;j<n;j++){if(a[j]-a[i]>d){ok=1;
//                printf("%d %d\n",i,j-1);minn=min(minn,n-(j-i));break;}}if(!ok){
//            printf("%d+++\n",i);minn=min(minn,i);}}printf("%d\n",minn);return 0;
}
/****************************************/
A

B直接暴力,忘了考虑1 的情况t了一发

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=100000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;int main()
{ll n,k,a,b,ans=0;scanf("%lld%lld%lld%lld",&n,&k,&a,&b);if(k==1){printf("%lld\n",(n-1)*a);return 0;}while(n){if(n<k){ans+=a*(n-1);break;}else{if(n%k==0){ans+=min((n-n/k)*a,b);n=n/k;}else{ans+=(n%k)*a;n-=n%k;}}}printf("%lld\n",ans);return 0;
}
/****************************************/
B

C从后往前扫找第一个个能替换的换了,然后把后面的全部换成最小,O(n*26)

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=100000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;char s[N];
int num[30];
int main()
{int n,k;scanf("%d%d%s",&n,&k,s);for(int i=0;i<n;i++)num[s[i]-'a']=1;int f=0;for(int i=0;i<26;i++){if(num[i]){f=i;break;}}if(n<k){printf("%s",s);for(int i=0;i<k-n;i++)printf("%c",(char)(f+'a'));puts("");}else{for(int i=k-1;i>=0;i--){int ok=-1;for(int j=0;j<26;j++){if(num[j]&&s[i]-'a'<j){
//                    printf("%d %d\n",i,j);ok=j;break;}}if(ok!=-1){s[i]=(char)(ok+'a');
//                printf("%d %c\n",i,s[i]);for(int j=i+1;j<k;j++)s[j]=(char)(f+'a');for(int j=0;j<k;j++)printf("%c",s[j]);break;}}}return 0;
}
/****************************************/
C

D枚举所有情况找l和r即可,见过最简单的d题= =

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=100000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;char s[N];
int a[N],b[N];
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%s",s+1);for(int i=1;i<=n;i++){if(s[i]=='1')b[i]=1;else b[i]=0;}int l=-1e9,r=1e9;for(int i=5;i<=n;i++){if(!b[i]&&b[i-1]&&b[i-2]&&b[i-2]&&b[i-3]){r=min(r,a[i]-1);r=min(r,a[i-1]-1);r=min(r,a[i-2]-1);r=min(r,a[i-3]-1);r=min(r,a[i-4]-1);}else if(b[i]&&!b[i-1]&&!b[i-2]&&!b[i-2]&&!b[i-3]){l=max(l,a[i]+1);l=max(l,a[i-1]+1);l=max(l,a[i-2]+1);l=max(l,a[i-3]+1);l=max(l,a[i-4]+1);}}printf("%d %d\n",l,r);return 0;
}
/****************************************/
D

E,题意:把一堆数分成若干块,每个块的价值是去掉前k/c(k是块大小)小的数的和,求所有块最小的和

很明显每个块分尽可能的c个,然后每次可以用dp来算dp【i】=min(dp【i-1】+a【i】,dp【i-c】+sum(i-c,i))求sum复杂度是o(n),可以用线段树预处理然后优化到o(logn),总复杂度O(nlogn)

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=100000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;ll mi[N<<2],sum[N<<2],a[N],dp[N];
void pushup(int rt)
{mi[rt]=min(mi[rt<<1],mi[rt<<1|1]);sum[rt]=sum[rt<<1]+sum[rt<<1|1];
}
void build(int l,int r,int rt)
{if(l==r){mi[rt]=sum[rt]=a[l];return ;}int m=(l+r)>>1;build(ls);build(rs);pushup(rt);
}
ll querysum(int L,int R,int l,int r,int rt)
{if(L<=l&&r<=R)return sum[rt];int m=(l+r)>>1;ll ans=0;if(L<=m)ans+=querysum(L,R,ls);if(m<R)ans+=querysum(L,R,rs);return ans;
}
ll querymi(int L,int R,int l,int r,int rt)
{if(L<=l&&r<=R)return mi[rt];int m=(l+r)>>1;ll ans=1e9+10;if(L<=m)ans=min(ans,querymi(L,R,ls));if(m<R)ans=min(ans,querymi(L,R,rs));return ans;
}
int main()
{int n,c;scanf("%d%d",&n,&c);for(int i=1;i<=n;i++)scanf("%lld",&a[i]);build(1,n,1);for(int i=1;i<=n;i++){dp[i]=dp[i-1]+a[i];if(i-c>=0){ll all=querysum(i-c+1,i,1,n,1);dp[i]=min(dp[i],dp[i-c]+all-querymi(i-c+1,i,1,n,1));}}printf("%lld\n",dp[n]);return 0;
}
/****************************************/
E

F,题意:一些数,两个操作1,把某个位置的数改成另一个,2,查询mex(数的总和个数)

带修莫队裸题,先把数离散化,然后暴力跑莫队即可,维护一个数的个数,一个数的个数有多少个,注意块一定要开n^(2/3)个,sqrt(n)会t,复杂度O(n^(5/3)+nlogn)

//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define cd complex<double>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0)using namespace std;const double g=10.0,eps=1e-12;
const int N=300000+10,maxn=1200000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;int a[N],belong[N],ans[N],now[N];
int l=1,r=0,num[N],t,co[N];
int Hash[N];
struct que{int l,r,tim,id;
}qu[N];
struct change{int pos,suf,pre;
}ch[N];
bool cmp(que a,que b)
{if(belong[a.l]==belong[b.l]){if(belong[a.r]==belong[b.r])return a.tim<b.tim;else return a.r<b.r;}else return a.l<b.l;
}
void gao(int x,int d)
{if(d==1){num[co[x]]--;co[x]++;num[co[x]]++;}else{num[co[x]]--;co[x]--;num[co[x]]++;}
}
void go(int x,int d)
{if(l<=x&&x<=r)gao(d,1),gao(a[x],-1);a[x]=d;
}
int main()
{int n,q,cnt=0;scanf("%d%d",&n,&q);int block=3000;for(int i=1;i<=n;i++){scanf("%d",&a[i]);Hash[cnt++]=a[i];now[i]=a[i];belong[i]=(i-1)/block+1;}int cnt1=0,cnt2=0;for(int i=1;i<=q;i++){int op,a,b;scanf("%d%d%d",&op,&a,&b);if(op==1)qu[++cnt1]={a,b,cnt2,cnt1};else ch[++cnt2]={a,b,now[a]},now[a]=b,Hash[cnt++]=b;}sort(Hash,Hash+cnt);cnt=unique(Hash,Hash+cnt)-Hash;for(int i=1;i<=n;i++)a[i]=lower_bound(Hash,Hash+cnt,a[i])-Hash;for(int i=1;i<=cnt2;i++){ch[i].pre=lower_bound(Hash,Hash+cnt,ch[i].pre)-Hash;ch[i].suf=lower_bound(Hash,Hash+cnt,ch[i].suf)-Hash;}
//    for(int i=1;i<=cnt1;i++)
//        printf("%d %d %d %d\n",qu[i].l,qu[i].r,qu[i].id,qu[i].tim);sort(qu+1,qu+1+cnt1,cmp);for(int i=1;i<=cnt1;i++){while(t<qu[i].tim)go(ch[t+1].pos,ch[t+1].suf),t++;while(t>qu[i].tim)go(ch[t].pos,ch[t].pre),t--;while(l<qu[i].l)gao(a[l],-1),l++;while(l>qu[i].l)gao(a[l-1],1),l--;while(r<qu[i].r)gao(a[r+1],1),r++;while(r>qu[i].r)gao(a[r],-1),r--;int res=1;while(num[res])res++;ans[qu[i].id]=res;}for(int i=1;i<=cnt1;i++)printf("%d\n",ans[i]);return 0;
}
/****************************************/
F

转载于:https://www.cnblogs.com/acjiumeng/p/8798567.html

相关文章:

WinCE中串口驱动及接口函数介绍(转载)

作者&#xff1a;ARM-WinCE 在WinCE中&#xff0c;串口驱动实际上就是一个流设备驱动,具体架构如图&#xff1a; 串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx)&#xff0c;PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操…

【jsp】写jsp文件的准备

1、引入jstl 代码实现&#xff1a; <% taglib prefix"c" uri"http://java.sun.com/jsp/jstl/core" %> 2、编写common文件 代码实现&#xff1a; <c:set var"ctxpath" value"${pageContext.request.contextPath }">&l…

studio2008 无法显示该网页

莫名奇妙的studio调试的时候页面显示无法显示该网页&#xff0c;差网页后得知原来是C:\WINDOWS\system32\drivers\etc下的Hosts文件被修改了&#xff0c; 确认里面有127.0.0.1 localhost 行转载于:https://www.cnblogs.com/sunshinecc/archive/2011/11/11/2245596.html

侠客X官方网站成立,第一个内测版本即将放出,敬请期待.

这是一个难忘的日子&#xff0c;西方的情人节&#xff0c;本站的成立代表侠客X&#xff0c;即将与大家见面了。 我们的要做的是&#xff0c;传承侠客站群经典模式&#xff0c;打造SEO王者力作&#xff0c;侠客X即将公开测试&#xff0c;敬请期待。 http://xpk.in Qin 转载于:ht…

HSSFWorkbook 与 XSSFWorkbook

项目中一直使用NPOI与memcached,一直相安无事,但是最近升级了npoi到最新版本,发生了ICSharpCode.SharpZipLib的版本冲突问题. 因为此前一直使用的是NPOI的1.x的版本,用的SharpZipLib是0.84版本,而升级到最新版本以后,SharpZipLib的版本变成了0.86版本. 但是memcached的却没有最…

P1066 2^k进制数 NOIP 2006 提高组 第四题

洛谷蓝题&#xff08;点击跳转&#xff09; 提高组 第四题 题目描述 设r是个2^k 进制数&#xff0c;并满足以下条件&#xff1a; &#xff08;1&#xff09;r至少是个2位的2^k 进制数。 &#xff08;2&#xff09;作为2^k 进制数&#xff0c;除最后一位外&#xff0c;r的每一位…

线段树专辑——pku 2886 Who Gets the Most Candies?

http://poj.org/problem?id2886 恩&#xff0c;分糖果&#xff0c;快乐的童年啊&#xff01; 题目意思大概n个小孩围成一个圈&#xff0c;每个小孩手里有张卡片&#xff0c;记录着一个数字。开始从第k个孩子&#xff0c;该孩子离开圈子&#xff0c;然后告诉别人他手里的数字&a…

【jsp】通过get和post传值的区别

GET与POST的区别&#xff1a; GET方式提交表单&#xff0c;请求的参数在请求的头部&#xff0c;可以通过request.getQueryString()获取到请求参数及其参数值&#xff1b;POST方式提交表单&#xff0c;请求的参数在请求体中&#xff0c;所以request.getQueryString()方法无法获…

php获取输入流

uc中的用到的代码(在api/uc.php)代码&#xff1a; $post xml_unserialize(file_get_contents(php://input));&#xfeff; php手册&#xff08;http://cn.php.net/manual/zh/wrappers.php.php&#xff09;说明: php://input allows you to read raw data from the request bod…

微信小程序实例源码大全demo下载

怎么本地测试微信小程序实例源码 1.下载源码2.打开微信开发者工具3.添加项目->选择本项目目录->编译执行微信小程序实例源码大全 微信小程序游戏类demo&#xff1a;识色&#xff1b;从相似颜色中挑选不同的一个 源码链接&#xff1a;http://www.wxapp-union.com/forum.ph…

RabbitMQ 学习

参考&#xff1a;https://www.rabbitmq.com/getstarted.html 先在本地安装RabbitMQ 组件(需要安装Erlang组件&#xff09;&#xff0c;启动服务。 激活 RabbitMQs Management Plugin 使用RabbitMQ 管理插件&#xff0c;可以更好的可视化方式查看Rabbit MQ 服务器实例的状态。 打…

怎样提高WebService的性能

服务器端WebService程序using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System.IO.Compression;using System.Data.SqlClient;………public class Service1 : System.Web.Services.WebService{[WebMethod(Description "直接返回 DataSet 对…

【jsp】jsp的内置对象(部分)

一、response 1、setStatus:设置响应状态码。 代码实现&#xff1a; response.setStatus(550); 更改的位置如图&#xff1a; 2、sendRedirect:服务器端跳转 代码实现&#xff1a; response.sendRedirect("Success.jsp"); 3、setContentRType:设置返回内容类型…

linux tar的使用方法

tar [-cxtzjvfpPN] 文件与目录 ....参数&#xff1a;-c &#xff1a;建立一个压缩文件的参数指令(create 的意思)&#xff1b;-x &#xff1a;解开一个压缩文件的参数指令&#xff01;-t &#xff1a;查看 tarfile 里面的文件&#xff01;特别注意&#xff0c;在参数的下达中&a…

关闭webstorm自动保存,并显示文件未保存标识

1.取消自动保存 2.显示编辑状态设置&#xff1a; 转载于:https://www.cnblogs.com/webSong/p/8807732.html

【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符

SQL函数&#xff1a;字符串中提取数字&#xff0c;英文&#xff0c;中文&#xff0c;过滤重复字符 --提取数字IF OBJECT_ID(DBO.GET_NUMBER) IS NOT NULLDROP FUNCTION DBO.GET_NUMBERGOCREATE FUNCTION DBO.GET_NUMBER(S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATI…

【java】实现数据在页面之间传输

传数据页面&#xff1a; 方法&#xff1a;使用a标签传输数据 格式&#xff1a; <a name"C03S417" href"getRoomFinal.jsp?roomNumberC03S415">入住 </a> 接收数据页面&#xff1a; 方法&#xff1a; &#xff08;1&#xff09;使用java代…

Android画图学习总结(四)——Animation(上)

随着对Drewable的深入了解&#xff0c;发现了Drawable更加强大的功能&#xff1a;显示Animation。Android SDK介绍了2种Animation&#xff1a; Tween Animation&#xff1a;通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果 Frame Animation&#xff1a;顺序播…

ES6 Rest参数

Rest参数接收函数的多余参数&#xff0c;组成一个数组&#xff0c;放在形参的最后&#xff0c;形式如下&#xff1a; function func(a, b, ...theArgs) { // ... }rest参数只包括那些没有给出名称的参数&#xff0c;注意&#xff0c;rest参数之后不能再有其它参数&#xff08;即…

Data - 深入浅出学统计 - 下篇

本文是已读书籍的内容摘要&#xff0c;少部分有轻微改动&#xff0c;但不影响原文表达。 &#xff1a;以漫画形式来讲解最基本的统计概念和方法。 ISBN: 9787121299636https://book.douban.com/subject/26906845/2 - 探寻参数 2.1 - 中心极限定理&#xff08;Central Limit The…

[网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.html此处仅供学习记录,版权归原作者. OpenStack 是 Python 2.6 写的&#xff0c;CentOS 5.6 上默认的是 Python 2.4 的环境…

【Linux】Linux computer文件夹下各种文件的作用

1、bin&#xff1a;放可执行文件&#xff0c;一些Linux的命令 注&#xff1a;Linux的命令最终都是一些程序&#xff0c;这些程序都放在bin目录和sbin目录 2、boot : 启动目录 3、dev : 存放设备 注&#xff1a;在Linux中把所有硬件都叫设备 4、etc&#xff1a; 安装软件的各种…

售前十年,两种人生

售前十年&#xff0c;两种人生,多重感悟! 售前第一年&#xff1a; 你 开始会觉得兴奋、紧张、恐慌。你对客户的提问&#xff0c;会有机械性的反应&#xff0c;试着说服他&#xff0c;但客户的表现总让你很茫然&#xff0c;你总是想把自己装扮的像一个专家&#xff0c;甚至故意打…

点击返回上一页面

οnclick"javascript:window.history.back(-1);" 方法一、以按钮点击的方式实现&#xff1a; <input type"button" name"Submit" value"返回上一页" οnclick"javascript:window.history.back(-1);"> 或者 &l…

【Linux】Linux 简单操作指令之磁盘管理

注&#xff1a;有关Linux全面的命令可以到网站&#xff1a;http://linux.51yip.com/查询 1、pwd : 显示当前所在位置 2、ll : 显示当前目录下的内容 注&#xff1a; (1)如果开头为一个 d 则为一个文件夹 如果开头为 - 则是一个文件 (2)ll后可以跟上一个目录&#xff0c;表示显…

浅说——九讲背包之01背包

所谓九讲&#xff0c;也就是&#xff1a;0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包&#xff1a; [问题描述]&#xff08;经典&#xff09;有一个吝啬的地主&#xff0c;不愿…

msvcrt.lib和LIBCD.lib链接冲突

今天在移植一个开源代码到windows的VC6工程&#xff0c;编译时出现了这些奇怪的LINK错误。 msvcrt.lib(MSVCRT.dll) : error LNK2005: _toupper already defined in LIBCD.lib(toupper.obj)msvcrt.lib(MSVCRT.dll) : error LNK2005: _tolower already defined in LIBCD.lib(to…

Oracle 小知识点

-- 表create table test (names varchar2(12),dates date,num int,dou double);-- 视图create or replace view vi_test asselect * from test;-- 同义词create or replace synonym aafor dbusrcard001.aa;-- 存储过程create or replace produce dd(v_id in employee.empoy…

CC2540获取本机MAC地址

//获取自身蓝牙地址void GetOwnAddr(void){ static uint8 ownAddress[6] {0}; ownAddress[5] XREG(0x780E); ownAddress[4] XREG(0x780F); ownAddress[3] XREG(0x7810); ownAddress[2] XREG(0x7811); ownAddress[1] XREG(0x7812); ownAddress[0] XREG(0x7813);}转载于:h…

mysql的小练习

建立如下表&#xff1a; 建表语句&#xff1a; class表创建语句 create table class(cid int not null auto_increment primary key, caption varchar(32) not null)engineinnodb default charsetutf8;student表创建语句 create table student(-> sid int not null auto_inc…