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. Spring+SpringMVC整合----配置文件

    1.在 web.xml 中加载 spring 的配置文件 bean.xml    底层是 Listener <!-- Spring --> <context-param> &l ...

  2. 20190806-sed面试题

    由于比较难,附上PPT,没事还得看 下载:https://www.lanzous.com/i5cs9aj 密码:arka 1.删除centos7系统/etc/grub2.cfg⽂件中所有以空⽩开头的⾏ ...

  3. nyoj 39-水仙花数

    39-水仙花数 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:35 submit:70 题目描述: 请判断一个数是不是水仙花数. 其中水仙花数定义各 ...

  4. nyoj 366-D的小L (next_permutation())

    366-D的小L 内存限制:64MB 时间限制:4000ms 特判: No 通过数:5 提交数:7 难度:2 题目描述:       一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡 ...

  5. python:类2——有关类和对象的BIF内置函数

    1.检查.判断 判断一个类是不是另一个类的子类 issubclass(class, classinfo)如果第一个参数是第二个参数的子类.子子类等,返回true 非严格(自己可以认为是自己的子类): ...

  6. UML:类图关系总结

    UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Reali ...

  7. 【Linux系列】Centos 7安装 PHP(四)

    目的 为了下面的Laravel部署,本篇开始安装PHP. 设置PHP源 查看Centos源是否有PHP. yum list php* 进一步查看PHP的版本. yum info php.x86_64 ...

  8. Ubuntu--pip3 -V 问题

    问题原因:可能是因为重新下载或更新python版本的时候,将系统的‘软连接’破坏掉了 解决办法: 1.重新创建--软连接: 进入bin目录:cd /usr/bin 删除pip3连接:rm pip3 重 ...

  9. python3 之 内置函数enumerate

    python3 内置函数enumerate一.简介: 该函数在字面上是枚举.列举的意思,用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列, 同时列出数据和数据下标,一般用在 for ...

  10. 2019-9-27:渗透测试,metasploit-framework初接触

    初次利用metasploit漏洞利用框架,入侵获取win7获取权限 目标机系统:windows7,无修复补丁 目标ip地址:192.168.20.131 任务:利用ms17-010,永恒之蓝漏洞,获取 ...