A : Be Positive 题目地址:https://codeforces.com/problemset/problem/1130/A

题解:让你求是否满足一个d使得数列长为n的a数组的每个数除以d以后,所得数列正数的数量大于ceil(n);(除以后四舍五入,0不是正数)

注意d为负数的情况

参考代码:

 #include<iostream>
using namespace std;
int main()
{
int x=,y=;
int t,a[];
cin>>t;
for(int i=;i<t;i++)
{
scanf("%d",&a[i]);
if(a[i]>) x++;
if(a[i]<) y++;
} if(*x>=t) cout<<<<endl;
else if(y*>=t) cout<<-<<endl;
else cout<<<<endl;
return ;
}

B : Two Cakes 题目地址: https://codeforces.com/problemset/problem/1130/B

题解:两个人依次走1,2,3...n这n个数的位置,求两个人所走步数和的最小值;

DP:dp[x]:表示走完第x个数的最小步数;

则  dp[i]=dp[i-1]+min(abs(vec[i][0]-vec[i-1][0])+abs(vec[i][1]-vec[i-1][1]),abs(vec[i][0]-vec[i-1][1])+abs(vec[i][1]-vec[i-1][0]));

参考代码:

 #include<bits/stdc++.h>
using namespace std;
#define clr(a,b) memset(a,b,sizeof(a))
#define PI acos(-1.0)
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
typedef long long ll;
const int INF=0x3f3f3f3f;
const int maxn=1e5+;
int n,x;
ll dp[maxn];
vector<int> vec[maxn];
int main()
{
scanf("%d",&n);clr(dp,);
for(int i=;i<=*n;++i)
{
scanf("%d",&x);
vec[x].push_back(i);
}
vec[].push_back(); vec[].push_back();
for(int i=;i<=n;++i)
dp[i]=dp[i-]+min(abs(vec[i][]-vec[i-][])+abs(vec[i][]-vec[i-][]),abs(vec[i][]-vec[i-][])+abs(vec[i][]-vec[i-][]));
printf("%lld\n",dp[n]);
return ;
}

C :  Connect 题目地址: https://codeforces.com/problemset/problem/1130/C

题解:给你一张n*n的地图,0代表陆地,1代表水地;只能走陆地;

给你起点和终点,并且你只能 打通一次 两块陆地;

让你求从起点大终点需要打通的陆地之间距离的最小值;

枚举起点所能到达的点,终点所能到达的点;暴力找最小值即可

参考代码:

 #include<bits/stdc++.h>
using namespace std;
#define clr(a,b) memset(a,b,sizeof(a))
#define PI acos(-1.0)
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
typedef long long ll;
const int INF=0x3f3f3f3f;
int ans=INF,n;
int x[],y[],v[][][];
char z[][];
void dfs(int a,int b,int c)
{
if(v[c][a][b]) return ;
v[c][a][b]=;
if(z[a+][b]=='') dfs(a+,b,c);
if(z[a][b+]=='') dfs(a,b+,c);
if(z[a-][b]=='') dfs(a-,b,c);
if(z[a][b-]=='') dfs(a,b-,c);
}
int main()
{
cin>>n;
for(int i=;i<;i++) cin>>x[i]>>y[i];
for(int i=;i<=n;i++) scanf("%s",z[i]+);
for(int i=;i<;i++) dfs(x[i],y[i],i);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
if(v[][i][j])
{
for(int k=;k<=n;k++)
for(int l=;l<=n;l++)
{
if(v[][k][l])
ans=min(ans,(i-k)*(i-k)+(j-l)*(j-l));
}
}
}
cout<<ans<<endl;
return ;
}

D(D1 和 D2) :Toy Train 题目地址:  https://codeforces.com/problemset/problem/1129/A2

两题一样,只是数据不一样,放一起说

题解:

有1-n个站点,成环形,有一辆运货车,在这个n个站点之间运输糖果,货车只能按照1->n的方向走,到第n个站的时候,又回到的1,现在告诉你有m个运输任务,从x站点运输一个糖果到y站点。已知货车的容量足够大,可以同时装无数个糖果,但是每一次经过一个站的时候,只能够选择其中一项任务进行运输,假设从一个站到另一个站的运输时间为1,请问从1-n每个站点作为起点,最短的运输时间分别是多少

这个题目,由于我们每次跑都是绕圈的,所以,如果站点i有 out[i]项任务的话,至少要经过站点i,out[i]次,所以,我们可以得出一个公式,假设初始起点为s,运输终点为e
dist(s,i)+n∗out[i]+dist(i,e) dist(s,i)+n*out[i]+dist(i,e)dist(s,i)+n∗out[i]+dist(i,e) 就是完成第i个站点的所有任务的时间,因此,我们只要让dist(i,e) dist(i,e)dist(i,e)最小即可

D1  D2   参考代码:

 #include<bits/stdc++.h>
using namespace std;
#define clr(a,v) memset(a,v,sizeof(a))
#define PI acos(-1.0)
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
typedef long long ll;
const int INF=0x3f3f3f3f;
const int maxn=;
int n,m,x,y;
int Min[maxn],out[maxn];
int dis(int i,int j){return j>=i? j-i:j-i+n;}
int main()
{
scanf("%d%d",&n,&m);
clr(out,);clr(Min,INF);
for(int i=;i<=m;++i)
{
scanf("%d%d",&x,&y);
if(y>=x) Min[x]=min(Min[x],y-x);
else if(y<x) Min[x]=min(Min[x],y-x+n);
out[x]++;
} for(int i=;i<=n;++i)
{
int ans=;
for(int j=;j<=n;++j)
{
if(out[j]) ans=max(ans,dis(i,j)+Min[j]+(out[j]-)*n);
}
printf("%d%c",ans,i==n?'\n':' ');
}
return ;
}

E : Wrong Answer 题目地址: https://codeforces.com/problemset/problem/1129/B

题解:

注意到 n≥2n≥2 时才可能有解,可以按如下方式构造一个 a1,2…na1,2…n:

令 a1=−1a1=−1 ,而后面的数都为正.记 s=∑ni=2ais=∑i=2nai,显然题目中的程序给出的答案是 s∗(n−1)s∗(n−1) .

为使这个答案比正确答案少 kk ,那么正确答案只能是 (s−1)∗n(s−1)∗n.

s(n−1)+k=(s−1)ns=k+ns(n−1)+k=(s−1)ns=k+n

由于我们可以放 11 个 −1−1 , 19991999 个 106106,此时 s−n=1999∗106−2000>109s−n=1999∗106−2000>109 ,所以按照上述方法一定可以构造出一组解.

参考代码:

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mp make_pair
#define pii pair<int,int>
const int delta=1e6-;
int ans[],n=,k;
int main()
{
scanf("%d",&k);
++k; ans[++n]=-;
while(k>=delta)
{
k-=delta;
ans[++n]=delta+;
}
ans[++n]=k+;
printf("%d\n",n);
for(int i=;i<=n;++i) printf("%d%c",ans[i],i==n?'\n':' ');
return ;
}

CF 1130A 1130B 1130C1129A1 1129A2 1129B(Round542A B C D1 D2 E)题解的更多相关文章

  1. CF#335 Freelancer's Dreams

    Freelancer's Dreams time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. B. Lost Number【CF交互题 暴力】

    B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...

  3. CF#581 (div2)题解

    CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...

  4. NSCharacter​Set 使用说明

    NSCharacter​Set 和 NSMutableCharacterSet  用面向对象的方式来表示一组Unicode字符,它经常与NSString及NSScanner组合起来使用,在不同的字符上 ...

  5. java中变量命名和引用变量的一个坑

    这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点.

  6. css 背景透明文字(内容)不透明三种实现方法

    好久没写博客了.以前还想着最少一个月抽空写几篇.结果没做到O(∩_∩)O~~.好吧.现在努力,继续坚持. 看着以前写的东西,感觉自己在逐渐成长. 先上图: 本文主要记录如上图一样的.文字或内容不透明, ...

  7. 安全协议系列(三)----CCMP与WPA-PSK

    本节讨论 CCM 在 WiFi 中的实际应用 -- CCMP 协议 根据 RFC 3610,完成 CCMP 报文的加解密,需要提供:分组密钥(K).随机数(Nonce).附加认证数据(AAD),这三个 ...

  8. CF451C Predict Outcome of the Game 水题

    Codeforces Round #258 (Div. 2) Predict Outcome of the Game C. Predict Outcome of the Game time limit ...

  9. Codeforces Round #379 (Div. 2) 解题报告

    题目地址 本次CF是在今天早上深夜进行,上午有课就没有直接参加.今天早上上课坐到后排参加了virtual participation.这次CF前面的题目都非常的水,不到10分钟就轻松过了前两题,比较郁 ...

随机推荐

  1. java中 equals和==区别

    一.java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号 ...

  2. Oracle instant client免安装Oracle客户端配置

    不想安装几个G的完整版client,可以直接通过安装包安装的时候选择instant client,如果没有安装包,也可以直接去官网下载一个即时客户端,64位的windows包大小只有78MB左右 传送 ...

  3. 【笔记】nginx部署静态网站

    安装nginx 本地到官网下载,然后把压缩包传到服务器上 安装三个依赖 apt-get install libpcre3 libpcre3-dev apt-get install zlib1g-dev ...

  4. MD5 加盐加密

    一.概述 MD5(Message Digest  Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法. 在一般的项目中都会有登录注册功能,最简单的, ...

  5. nyoj 349 (poj 1094) (拓扑排序)

    Sorting It All Out 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 An ascending sorted sequence of distinct ...

  6. 【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.欢迎 Sta ...

  7. 16 Zabbix4.4.1系统告警“Zabbix agent is not available (for 3m)“

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 Zabbix4.4.1系统告警“Zabbix agent is not available (fo ...

  8. 20191121-7 Scrum立会报告+燃尽图 03

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/10067一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...

  9. OSI层次模型

    ISO:国际标准化组织 层(layer):描述所有的有效的通讯过程,并把逻辑上的组叫做层. 分层优点: 促进标准化工作,允许各个供应商进行开发 各层之间相互独立,把网络操作分成低复杂度性单元 灵活性好 ...

  10. day20191104笔记

    MyBatis笔记: 一.MyBatis半自动ORM映射框架, 将数据库中的数据和程序中的数据进行自动映射的前提条件 1. 数据库中的字段必须和程序中的属性保持一致 2. 程序中属性的数据类型必须是基 ...