Educational Codeforces Round 24
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> using namespace std; typedef long long LL; LL n,k; int main() {scanf("%I64d%I64d",&n,&k);LL t1=n/2/(k+1),t2=t1*k;printf("%I64d %I64d %I64d\n",t1,t2,n-t1-t2);return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<vector> using namespace std; int n,m,l[105],a[105]; int num[105]; vector<int>v; int main() {scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)scanf("%d",&l[i]);for(int i=1;i<m;i++){int t=l[i+1];while(t<=l[i])t+=n;if(a[l[i]]&&a[l[i]]!=t-l[i]){printf("-1\n");return 0;}if(!a[l[i]]){a[l[i]]=t-l[i];num[a[l[i]]]++;}}for(int i=1;i<=n;i++)if(num[i]>1){printf("-1\n");return 0;}else if(!num[i])v.push_back(i);for(int i=1;i<=n;i++){if(!a[i])a[i]=v.back(),v.pop_back();printf("%d ",a[i]);}return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; struct data {int x1,y1,x2,y2; }sofa[100005]; int d,n,m,cntl,cntr,cntt,cntb,xl[100005],yl[100005],xr[100005],yr[100005]; int main() {scanf("%d%d%d",&d,&n,&m);for(int i=1;i<=d;i++){ scanf("%d%d%d%d",&sofa[i].x1,&sofa[i].y1,&sofa[i].x2,&sofa[i].y2);xl[min(sofa[i].x1,sofa[i].x2)]++;yl[min(sofa[i].y1,sofa[i].y2)]++;xr[max(sofa[i].x1,sofa[i].x2)]++;yr[max(sofa[i].y1,sofa[i].y2)]++;}scanf("%d%d%d%d",&cntl,&cntr,&cntt,&cntb);for(int i=1;i<=n;i++)xl[i]+=xl[i-1];for(int i=1;i<=m;i++)yl[i]+=yl[i-1];for(int i=n;i;i--)xr[i]+=xr[i+1];for(int i=m;i;i--)yr[i]+=yr[i+1]; for(int i=1;i<=d;i++){int l=xl[max(sofa[i].x1,sofa[i].x2)-1];int r=xr[min(sofa[i].x1,sofa[i].x2)+1];if(sofa[i].x1!=sofa[i].x2)l--,r--;int t=yl[max(sofa[i].y1,sofa[i].y2)-1];int b=yr[min(sofa[i].y1,sofa[i].y2)+1];if(sofa[i].y1!=sofa[i].y2)t--,b--;if(l==cntl&&r==cntr&&t==cntt&&b==cntb){printf("%d\n",i);return 0;}}printf("-1\n");return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<vector> using namespace std; int n,a,b,num[1000005],x[1000005]; bool f[1000005]; int main() {scanf("%d%d",&n,&a);for(int i=1;i<=n;i++){scanf("%d",&x[i]);if(a!=x[i]&&num[x[i]]<num[a])f[x[i]]=1;num[x[i]]++;if(a!=x[i]&&num[x[i]]<num[a])f[x[i]]=1;}if(!num[a]){printf("%d\n",a+1<=1000000?a+1:a-1);return 0;}for(int i=1;i<=n;i++){if(a!=x[i]&&num[x[i]]<num[a])f[x[i]]=1;if(!f[x[i]]&&x[i]!=a){printf("%d\n",x[i]);return 0;}}printf("-1\n");return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> typedef long long LL; using namespace std; LL n,k,a[100005],cnt=0,num[50],sum[50][100005],res=0; LL read() {LL x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f; } bool check(int x,int y) {for(int i=1;i<=cnt;i++)if(x!=1&&sum[i][y]-sum[i][x-1]<sum[i][0])return false;else if(x==1&&sum[i][y]<sum[i][0])return false;return true; } int main() {n=read(),k=read();LL t=k;for(int i=2;i*i<=t;i++){if(t%i==0){num[++cnt]=i;while(t%i==0)t/=i,sum[cnt][0]++;}}if(t>1)num[++cnt]=t,sum[cnt][0]++;for(int i=1;i<=n;i++){a[i]=read();int t=a[i];for(int j=1;j<=cnt;j++){if(t%num[j]==0){while(t%num[j]==0)t/=num[j],sum[j][i]++;}}}for(int i=1;i<=cnt;i++)for(int j=1;j<=n;j++)if(j!=1)sum[i][j]+=sum[i][j-1];for(int i=1;i<=n;i++){int l=i,r=n,ans=-1;while(l<=r){int mid=(l+r)>>1;if(check(i,mid))r=mid-1,ans=mid;else l=mid+1;}if(ans!=-1)res+=n-ans+1;}printf("%I64d\n",res);return 0; }
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; typedef long long LL; LL q,n,ans; LL check(LL x) {if(x*(x-1)/2<=n-x){ans=max(ans,x*(x-1)/2+n-x);return x*(x-1)/2+n-x;}ans=max(ans,(n-x)*2);return (n-x)*2; } int main() {scanf("%I64d",&q);for(int i=1;i<=q;i++){scanf("%I64d",&n);LL l=1,r=n;ans=n-1;while(l+2<r){int x1=l+(r-l)/3,x2=l+(r-l)*2/3;if(check(x1)<check(x2))l=x1;else r=x2;}for(int i=l;i<=r;i++)check(i);printf("%I64d\n",ans);}return 0; }
#include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<queue> #define INF 0x3f3f3f3f using namespace std; int n,ss,s,t,a[6005],head[6005],cnt=0,vis[100005],f[6005],dis[6005],pre[6005]; bool inq[6005]; struct Node {int next,to,cap,w; }Edges[10000005]; int read() {int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f; } void addedge(int u,int v,int c,int w) {Edges[cnt].next=head[u];head[u]=cnt;Edges[cnt].to=v;Edges[cnt].cap=c;Edges[cnt++].w=w; } void insert(int u,int v,int c,int w) {addedge(u,v,c,w);addedge(v,u,0,-w); } queue<int>q; int MCMF() {int flow=0,cost=0;while(1){memset(dis,-1,sizeof(dis));q.push(ss);inq[ss]=1,dis[ss]=0,f[ss]=INF,pre[ss]=-1;while(!q.empty()){int u=q.front();q.pop(),inq[u]=0;for(int i=head[u];~i;i=Edges[i].next){int v=Edges[i].to;if(dis[v]<dis[u]+Edges[i].w&&Edges[i].cap>0){dis[v]=dis[u]+Edges[i].w;f[v]=min(f[u],Edges[i].cap);pre[v]=i;if(!inq[v])inq[v]=1,q.push(v);}}} if(dis[t]==-1)break;flow+=f[t];cost+=dis[t]*f[t];int p=t;while(pre[p]!=-1){Edges[pre[p]].cap-=f[t];Edges[pre[p]^1].cap+=f[t];p=Edges[pre[p]^1].to;}}return cost; } int main() {memset(head,-1,sizeof(head));n=read(),ss=2*n+2,s=0,t=2*n+1;insert(ss,s,4,0);for(int i=1;i<=n;i++){a[i]=read(),insert(i,i+n,1,1);insert(s,i,1,0),insert(i+n,t,1,0);}for(int i=1;i<=n;i++){int have=0;for(int j=i+1;j<=n;j++){if(abs(a[i]-a[j])==1&&vis[a[j]]!=i)insert(i+n,j,1,0),vis[a[j]]=i;else if(have<4&&vis[a[j]]!=i&&a[i]%7==a[j]%7)insert(i+n,j,1,0),have++,vis[a[j]]!=i;}}printf("%d\n",MCMF());return 0; }
转载于:https://www.cnblogs.com/Zars19/p/7098483.html
Educational Codeforces Round 24相关推荐
- Educational Codeforces Round 24 E. Card Game Again(双指针)
题目链接:Educational Codeforces Round 24 E. Card Game Again 题意: 给你n个数和一个数k. 现在每次可以拿掉前x个数,后y个数,剩下的数的乘积要能被 ...
- Educational Codeforces Round 32
http://codeforces.com/contest/888 A Local Extrema[水] [题意]:计算极值点个数 [分析]:除了第一个最后一个外,遇到极值点ans++,包括极大和极小 ...
- Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)
Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...
- Educational Codeforces Round 25 G. Tree Queries
题目链接:Educational Codeforces Round 25 G. Tree Queries 题意: 给你一棵树,一开始所有的点全是黑色,有两种操作. 1 x 将x这个点变为黑色,保证第一 ...
- [Educational Codeforces Round 16]A. King Moves
[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
- Educational Codeforces Round 37 (Rated for Div. 2) 1
Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...
- Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)
Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...
最新文章
- 转:C#中Monitor对象与Lock关键字的区别分析
- BZOJ4241 历史研究(莫队)
- c语言编程平均分,用C语言编程平均分数
- 【NLP】让AI读懂法律文书:一种基于多分类的关键句识别方法
- 【python】python redis的安装与使用
- Docker系列之.NET Core入门(三)
- java写的MySQL数据库备份和恢复代码:
- MySQL详细安装(windows)
- 嵌入式操作系统内核原理和开发(最快、最优、最差内存分配算法)
- Bootstrap 按钮
- 一个极简版本的 VUE SSR demo
- 结合使用 Oracle Coherence 和 Spring Batch 进行高性能数据处理
- java xml 转excel_如何用java实现xml文件转excel
- SEO死链查询工具对网站的三大好处
- 数据挖掘实验:使用 Hadoop 实现 WordCount 应用
- 嵌入式Linux C编程学习之路(八)——read/write,lseek函数,cp指令的代码实现
- 《无线通信与网络》 第一章 概述
- CVPR2019目标检测汇总
- opengl读取24位BMP文件为纹理并处理黑色背景为透明
- 手写SHA1加密算法(Java版)
热门文章
- Kotlin Android Studio 环境搭建
- C#设计模式(13)——代理模式(Proxy Pattern)
- Beyond Compare 怎么新增与卸载文件格式
- 读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数...
- 南阳58--最小步数(BFS)
- Eclipse开发常用快捷键
- windows serve 2012部署操作系统之部署(三)
- 基金盘后业务的详细设置
- Linux 命令(112)—— unalias 命令(builtin)
- C++11 range-based for loop