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. Jquery EasyUI 中ValidateBox验证框使用讲解

    来源素文宅博客:http://blog.yoodb.com/ Validatebox(验证框)的设计目的是为了验证输入的表单字段是否有效.如果用户输入了无效的值,它将会更改输入框的背景颜色,并且显示警 ...

  2. Asciinema:你的所有操作都将被录制

    如何实现类似于Jumpserver koko一样的终端录制回放功能呢?本文介绍一个神器 asciinema 是一款开源免费的终端录制工具,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提 ...

  3. Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成

    random模块--random是一个生成器 首先: import random    #导入模块 print (help(random))    #打印random模块帮助信息 常用function ...

  4. pat 1041 Be Unique(20 分)

    1041 Be Unique(20 分) Being unique is so important to people on Mars that even their lottery is desig ...

  5. nyoj 1112-求次数 (string, substr(begin, length), map, pair)

    1112-求次数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:3 提交数:8 难度:2 题目描述: 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新 ...

  6. 查找文件或目录(find、locate、whereis、which、whatis)

    find命令:可以按文件名.文件的类型.用户等条件来递归查找文件或目录 find  [路径]  [匹配表达式] ,常用选项如下 -name filename  按文件名 -user username ...

  7. Qt Framework 问题之 framework/Versions/A:bundle format unrecognized, invalid, or unsuitable

    在解决标题提到的问题之后,先来介绍下Qt Framework一些基本知识. 基于QT的Mac端工程,在打包时需要对所有需要嵌入到APP的framework及dylib文件进行手动签名处理. 一.签名处 ...

  8. 万恶之源-python内容的进化

    1.整数: ​ int--计算和比较 ​ 整数可以进行的操作: ​ bit_length().计算整数在内存中占用的二进制码的长度 2.布尔值 ​ bool 布尔值--用于条件使用 ​ True 真 ...

  9. 剖析nsq消息队列(四) 消息的负载处理

    剖析nsq消息队列-目录 实际应用中,一部分服务集群可能会同时订阅同一个topic,并且处于同一个channel下.当nsqd有消息需要发送给订阅客户端去处理时,发给哪个客户端是需要考虑的,也就是我要 ...

  10. 【2018寒假集训 Day2】【动态规划】维修栅栏

    维修栅栏 问题描述: 小z最近当上了农场主!不过,还没有来得及庆祝,一件棘手的问题就摆在了小z的面前.农场的栅栏,由于年久失修,出现了多处破损.栅栏是由n块木板组成的,每块木板可能已经损坏也可能没有损 ...