Codeforces ECR52 div2翻车记
A:签到。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define ll long long
int t,a,b,c,d;
int main()
{
t=read();
while (t--)
{
a=read(),b=read(),c=read(),d=read();
cout<<a/d+1ll*a/d/b*c<<endl;
}
return ;
}
B:long long。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 100010
long long n,m;
int main()
{
cin>>n>>m;
cout<<max(n-m*,0ll)<<' ';
for (long long i=;i<=n;i++) if (i*(i-)/>=m) {cout<<n-i;break;}
return ;
}
C:从大到小排序后贪心地修改。我猜我是唯一一个C花掉的时间比D多的。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 200010
int n,m,a[N],ans=;
int main()
{
n=read(),m=read();
for (int i=;i<=n;i++) a[i]=read();
sort(a+,a+n+);reverse(a+,a+n+);
for (int i=;a[i]!=a[n];)
{
int t=i;long long tot=;
while (t<n&&tot+1ll*(a[t]-a[t+])*t<=m) tot+=(a[t]-a[t+])*t,t++;
ans++;
i=t;a[i]-=(m-tot)/t;
}
cout<<ans;
return ;
}
D:做法非常显然,每个位置拆点跑个最短路然后大力dp就行了,码农题。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 12
int n,f[N*N][],g[N*N][],dis[N*N*][N*N*],dis2[N*N*][N*N*];
struct data{int x,y;
}a[N*N];
int wx[]={,,-,-,,,-,-},wy[]={,-,,-,,-,,-};
int trans(int p,int x,int y){return p*n*n+(x-)*n+y;}
void getdis()
{
memset(dis,,sizeof(dis));memset(dis2,,sizeof(dis2));
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int x=;x<=n;x++)
for (int y=;y<=n;y++)
if (i==x||j==y) dis[trans(,i,j)][trans(,x,y)]=,dis2[trans(,i,j)][trans(,x,y)]=;
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int k=;k<;k++)
if (i+wx[k]>=&&j+wy[k]>=&&i+wx[k]<=n&&j+wy[k]<=n)
dis[trans(,i,j)][trans(,i+wx[k],j+wy[k])]=,dis2[trans(,i,j)][trans(,i+wx[k],j+wy[k])]=;
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int x=;x<=n;x++)
for (int y=;y<=n;y++)
if (i+j==x+y||i-j==x-y) dis[trans(,i,j)][trans(,x,y)]=,dis2[trans(,i,j)][trans(,x,y)]=;
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
for (int x=;x<;x++)
for (int y=;y<;y++)
dis[trans(x,i,j)][trans(y,i,j)]=dis2[trans(x,i,j)][trans(y,i,j)]=(x!=y);
for (int k=;k<=*n*n;k++)
for (int i=;i<=*n*n;i++)
for (int j=;j<=*n*n;j++)
if (dis[i][k]+dis[k][j]<dis[i][j]||dis[i][k]+dis[k][j]==dis[i][j]&&dis2[i][k]+dis2[k][j]<dis2[i][j])
dis[i][j]=dis[i][k]+dis[k][j],dis2[i][j]=dis2[i][k]+dis2[k][j];
}
void update(int i,int p)
{
for (int j=;j<;j++)
if (f[i-][j]+dis[trans(j,a[i-].x,a[i-].y)][trans(p,a[i].x,a[i].y)]<f[i][p]||
f[i-][j]+dis[trans(j,a[i-].x,a[i-].y)][trans(p,a[i].x,a[i].y)]==f[i][p]
&&g[i-][j]+dis2[trans(j,a[i-].x,a[i-].y)][trans(p,a[i].x,a[i].y)]<g[i][p])
f[i][p]=f[i-][j]+dis[trans(j,a[i-].x,a[i-].y)][trans(p,a[i].x,a[i].y)],
g[i][p]=g[i-][j]+dis2[trans(j,a[i-].x,a[i-].y)][trans(p,a[i].x,a[i].y)];
}
int main()
{
n=read();
for (int i=;i<=n;i++)
for (int j=;j<=n;j++)
{
int x=read();
a[x].x=i,a[x].y=j;
}
getdis();
memset(f,,sizeof(f));memset(g,,sizeof(g));
f[][]=f[][]=f[][]=g[][]=g[][]=g[][]=;
for (int i=;i<=n*n;i++)
update(i,),update(i,),update(i,);
int x=;
if (f[n*n][]<f[n*n][]||f[n*n][]==f[n*n][]&&g[n*n][]<g[n*n][]) x=;
if (f[n*n][]<f[n*n][x]||f[n*n][]==f[n*n][x]&&g[n*n][]<g[n*n][x]) x=;
cout<<f[n*n][x]<<' '<<g[n*n][x];
return ;
}
然后就并没有时间看题了。不过E是置换并没有真的学过那大概也不算翻车了。
upd:于是就发现F是个傻逼题。将所有边连上缩个点dp一发即可。
result:rank 217 rating +7 迷之稳定。
Codeforces ECR52 div2翻车记的更多相关文章
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- A · F · O —— JLOI2018翻车记(附Day1简要题解)
JLOI2018翻车记 并不知道该怎么写... 算了还是按照标准剧情来吧 这应该是一篇写得非常差的流水账... 2018.04.04 Day -1 省选前在机房的最后一天. 压力并不是很大,毕竟联赛 ...
- 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道
非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...
- 【Codeforces #312 div2 A】Lala Land and Apple Trees
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
- Codeforces Round#500 Div.2 翻车记
A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...
随机推荐
- WPF 应用程序资源、内容和数据文件
MSDN相关介绍: http://msdn.microsoft.com/zh-cn/library/aa970494(v=vs.100).aspx 内容文件(Content Files)内容文件简单的 ...
- BZOJ1029_建筑抢修_KEY
题目传送门 这是一道贪心的问题. 总体做法是这样的:先按照报废的快慢从小到大SORT一遍,优先修报废快的.同时开一个大根堆(C++的朋友可以用priority_queue),用来记录已经修了的建筑的耗 ...
- CF 1027 F. Session in BSU
F. Session in BSU https://codeforces.com/contest/1027/problem/F 题意: n场考试,每场可以安排在第ai天或者第bi天,问n场考完最少需要 ...
- Farpoint使用一点小总结
Farpoint表格编辑的功能是非常强大的,记录下自己常用到的地方. 使用的版本:FarPoint.Win.Spread.5.0 1.Farpoint 设置为不可编辑状态 this.FPProxyIt ...
- 在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)
作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Androi ...
- Python字符串操作大全(非常全!!!)
1. python编程里字符串的内置方法(非常全) capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居 ...
- TW实习日记:第26天
这周组长休年假去了,并且之前主要负责的项目也已经上线了,可以说没那么忙了,手头就一个协助别的组做的移动端项目.可是这个项目特别坑,由于网端是9年前的项目,导致后台的接口有非常多的问题,并且入参多得令人 ...
- 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解
孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...
- 【Linux 运维】 Centos7.x 系统修复模式
一.linux的运行级别: 运行级别就是来确定系统启动时到底启动那个服务. linux默认有7个运行级别: 0 关机 1 单用户模式,用于系统修复 2 不完全的命令模式,不含NFS服务 3 完全的命令 ...
- Skype for Business Server 方案
方案说明: 高可用性的配置屏蔽了单点故障,使得当一个服务器节点失效时,另外的可用的节点能够进行服务的接管.可伸缩性的配置可以保证当即时沟通平台的使用用户增加时,该平台应该具有良好的可伸缩性,能非常方便 ...