CF 1130A 1130B 1130C1129A1 1129A2 1129B(Round542A B C D1 D2 E)题解
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.
由于我们可以放 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)题解的更多相关文章
- CF#335 Freelancer's Dreams
Freelancer's Dreams time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- B. Lost Number【CF交互题 暴力】
B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- NSCharacterSet 使用说明
NSCharacterSet 和 NSMutableCharacterSet 用面向对象的方式来表示一组Unicode字符,它经常与NSString及NSScanner组合起来使用,在不同的字符上 ...
- java中变量命名和引用变量的一个坑
这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点.
- css 背景透明文字(内容)不透明三种实现方法
好久没写博客了.以前还想着最少一个月抽空写几篇.结果没做到O(∩_∩)O~~.好吧.现在努力,继续坚持. 看着以前写的东西,感觉自己在逐渐成长. 先上图: 本文主要记录如上图一样的.文字或内容不透明, ...
- 安全协议系列(三)----CCMP与WPA-PSK
本节讨论 CCM 在 WiFi 中的实际应用 -- CCMP 协议 根据 RFC 3610,完成 CCMP 报文的加解密,需要提供:分组密钥(K).随机数(Nonce).附加认证数据(AAD),这三个 ...
- CF451C Predict Outcome of the Game 水题
Codeforces Round #258 (Div. 2) Predict Outcome of the Game C. Predict Outcome of the Game time limit ...
- Codeforces Round #379 (Div. 2) 解题报告
题目地址 本次CF是在今天早上深夜进行,上午有课就没有直接参加.今天早上上课坐到后排参加了virtual participation.这次CF前面的题目都非常的水,不到10分钟就轻松过了前两题,比较郁 ...
随机推荐
- Spring+SpringMVC整合----配置文件
1.在 web.xml 中加载 spring 的配置文件 bean.xml 底层是 Listener <!-- Spring --> <context-param> &l ...
- 20190806-sed面试题
由于比较难,附上PPT,没事还得看 下载:https://www.lanzous.com/i5cs9aj 密码:arka 1.删除centos7系统/etc/grub2.cfg⽂件中所有以空⽩开头的⾏ ...
- nyoj 39-水仙花数
39-水仙花数 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:35 submit:70 题目描述: 请判断一个数是不是水仙花数. 其中水仙花数定义各 ...
- nyoj 366-D的小L (next_permutation())
366-D的小L 内存限制:64MB 时间限制:4000ms 特判: No 通过数:5 提交数:7 难度:2 题目描述: 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡 ...
- python:类2——有关类和对象的BIF内置函数
1.检查.判断 判断一个类是不是另一个类的子类 issubclass(class, classinfo)如果第一个参数是第二个参数的子类.子子类等,返回true 非严格(自己可以认为是自己的子类): ...
- UML:类图关系总结
UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Reali ...
- 【Linux系列】Centos 7安装 PHP(四)
目的 为了下面的Laravel部署,本篇开始安装PHP. 设置PHP源 查看Centos源是否有PHP. yum list php* 进一步查看PHP的版本. yum info php.x86_64 ...
- Ubuntu--pip3 -V 问题
问题原因:可能是因为重新下载或更新python版本的时候,将系统的‘软连接’破坏掉了 解决办法: 1.重新创建--软连接: 进入bin目录:cd /usr/bin 删除pip3连接:rm pip3 重 ...
- python3 之 内置函数enumerate
python3 内置函数enumerate一.简介: 该函数在字面上是枚举.列举的意思,用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列, 同时列出数据和数据下标,一般用在 for ...
- 2019-9-27:渗透测试,metasploit-framework初接触
初次利用metasploit漏洞利用框架,入侵获取win7获取权限 目标机系统:windows7,无修复补丁 目标ip地址:192.168.20.131 任务:利用ms17-010,永恒之蓝漏洞,获取 ...