A. Be Positive

题意:给出一个数组 每个树去除以d(d!=0)使得数组中大于0的数 大于ceil(n/2) 求任意d

思路:数据小 直接暴力就完事了

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=;
  4. double a[maxn];
  5. int main(){
  6. int n;
  7. scanf("%d",&n);
  8. for(int i=;i<n;i++){
  9. scanf("%lf",&a[i]);
  10. }
  11. int temp=ceil(n*1.0/);
  12. for(int i=-1e3;i<=1e3;i++){
  13. if(i==)continue;
  14. int flag=;
  15. for(int j=;j<n;j++){
  16. if(a[j]/i>){
  17. flag++;
  18.  
  19. }
  20. }
  21. if(flag>=temp){
  22. printf("%d\n",i);
  23. return ;
  24. }
  25. }
  26. printf("0\n");
  27. return ;
  28. }

B. Two Cakes

题意:给出一个1-n的数组 每个数字都出现两编  两个人 每个人从1--n开始按大小选择数字(代价为数组上走多远距离)  每个数字只能选择一次  问最少要走多久

思路:把每个数的位置记一下 然后直接算上一个位置到下一个位置的最小和是多少 例如 要算2 的 直接算2个1分别到两个2的两种情况即可,因为这是无后效性的

枚举到哪个数字 当前时刻两个人肯定在上一个位置 例如要到n时两个人肯定在n-1出发

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=;
  4. double a[maxn];
  5. int main(){
  6. int n;
  7. scanf("%d",&n);
  8. for(int i=;i<n;i++){
  9. scanf("%lf",&a[i]);
  10. }
  11. int temp=ceil(n*1.0/);
  12. for(int i=-1e3;i<=1e3;i++){
  13. if(i==)continue;
  14. int flag=;
  15. for(int j=;j<n;j++){
  16. if(a[j]/i>){
  17. flag++;
  18.  
  19. }
  20. }
  21. if(flag>=temp){
  22. printf("%d\n",i);
  23. return ;
  24. }
  25. }
  26. printf("0\n");
  27. return ;
  28. }

C. Connect

题意:给出一张图 可以在不同连通快之间做通道 但是会消耗 算术距离的代价 问最小代价是多少

思路: 图很小 只有50*50 所以直接把起点和终点的连通的快的坐标记下来 然后暴力求最小代价即可

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=;
  4. int n;
  5. char mp[maxn][maxn];
  6. int vis[maxn][maxn];
  7. struct Node{
  8. int x,y;
  9. }s1[maxn*maxn],s2[maxn*maxn];
  10. int dy[]={
  11. ,-,,
  12. };
  13. int dx[]={
  14. ,,-,
  15. };
  16. void dfs(int x,int y,int num){
  17. vis[x][y]=num;
  18. for(int i=;i<;i++){
  19. int tx=x+dx[i],ty=y+dy[i];
  20. if(tx<||tx>n||ty<||ty>n)continue;
  21. if(vis[tx][ty]!=||mp[tx][ty]=='')continue;
  22. dfs(tx,ty,num);
  23. }
  24. }
  25.  
  26. int dist(int x1,int y1,int x2,int y2){
  27. return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
  28. }
  29. int main(){
  30.  
  31. scanf("%d",&n);
  32. int sx,sy,tx,ty;
  33. scanf("%d%d%d%d",&sx,&sy,&tx,&ty);
  34. for(int i=;i<=n;i++){
  35. scanf("%s",mp[i]+);
  36. }
  37.  
  38. int temp=;
  39. memset(vis,,sizeof(vis));
  40. for(int i=;i<=n;i++){
  41. for(int j=;j<=n;j++){
  42. if(vis[i][j]==&&mp[i][j]==''){dfs(i,j,temp);temp++;}
  43. }
  44. }
  45. if(vis[sx][sy]==vis[tx][ty]){
  46. printf("0\n");
  47. return ;
  48. }
  49. int num1=,num2=;
  50. for(int i=;i<=n;i++){
  51. for(int j=;j<=n;j++){
  52. if(vis[i][j]==vis[sx][sy]){
  53. s1[num1].x=i,s1[num1++].y=j;
  54. }
  55. if(vis[i][j]==vis[tx][ty]){
  56. s2[num2].x=i,s2[num2++].y=j;
  57. }
  58. }
  59. }
  60. int ans=maxn*maxn*;
  61. for(int i=;i<num1;i++){
  62. for(int j=;j<num2;j++)
  63. {
  64. ans=min(ans,dist(s1[i].x,s1[i].y,s2[j].x,s2[j].y));
  65. }
  66. }
  67. cout<<ans<<endl;
  68. return ;
  69. }

D2. Toy Train

题意:一个1-n的圈 火车在这个圈上顺时针旋转 每个点有 任务:把该点的糖果送到 另外一个点去    在一个点上只能往上装一个糖果,但是可以卸下任意个

问从每个点出发 所需要的最短时间    直接把每个点从1号出发所需要的最长时间预处理一下 然后从1号点枚举 这样每个点的时间就是 最长时间减去  枚举到的起点和1之间的距离

思路: 对于一个点x假设有k个任务  那么 当前点最少需要走 完整圈(k-1)圈 然后走剩下的那个点

time=  (k-1) *n +  dist(start,x) +dist(x,最后一个要送的点)

所以起点选择和x点相同 最后一个点在顺时针方向上离x点最近 可以得到最小时间

暴力每个点即可

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=+;
  4. int len[maxn],b[maxn],ans[maxn];
  5. vector<int>a[maxn];
  6. multiset<int>s;
  7. int main(){
  8. int n,m;
  9. scanf("%d%d",&n,&m);
  10. int x,y;
  11. for(int i=;i<m;i++){
  12. scanf("%d%d",&x,&y);
  13. if(x>y)y+=n;
  14. a[x].push_back(y);
  15. }
  16. for(int i=;i<=n;i++){
  17. if(a[i].size()==)len[i]=;
  18. else {
  19. sort(a[i].begin(),a[i].end());
  20. len[i]=a[i][]+(a[i].size()-)*n;
  21. }
  22. s.insert(len[i]);
  23. }
  24. for(int i=;i<=n;i++){
  25. ans[i]=*(--s.end())-i;
  26. if(len[i]!=){
  27. s.erase(s.find(len[i]));
  28. s.insert(len[i]+n);
  29. }
  30. }
  31. for(int i=;i<=n;i++)printf("%d ",ans[i]);
  32.  
  33. return ;
  34. }

Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2)的更多相关文章

  1. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题解

    Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题目链接:https://codeforces.com/contest/1130 ...

  2. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) C(二分+KMP)

    http://codeforces.com/contest/1129/problem/C #include<bits/stdc++.h> #define fi first #define ...

  3. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) A - D2

    A. Be Positive 链接:http://codeforces.com/contest/1130/problem/A 题意: 给一段序列,这段序列每个数都除一个d(−1e3≤d≤1e3)除完后 ...

  4. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1)C. Morse Code

    题意:给你n个01字符,每次问你前缀的所有本质不同的子串,由摩斯密码组成的方案数和. 题解:离线处理,把字符建sam,通过topo序来dp计算每个节点表示的子串方案数的和.统计答案时,把n个字符挨个匹 ...

  5. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1)

    A - Toy Train 很显然,一个站有多少个糖,那么就要从这个点运多少次.设第i个点有\(a_i\)个糖,那么就要转\(a_i-1\)圈,然后再走一段.很显然最后一段越小越好. 然后枚举起点后, ...

  6. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) 题解

    A. Toy Train 时间限制:2 seconds 内存限制:256 megabytes 题意 有编号111~n(n≤5000)n(n\le 5000)n(n≤5000)的车站顺时针呈环排列,有m ...

  7. Codeforces Round 542 (Div. 2)

    layout: post title: Codeforces Round 542 (Div. 2) author: "luowentaoaa" catalog: true tags ...

  8. Codeforces Round #542 题解

    Codeforces Round #542 abstract I决策中的独立性, II联通块染色板子 IIIVoronoi diagram O(N^2 logN) VI环上距离分类讨论加取模,最值中的 ...

  9. int和integer;Math.round(11.5)和Math.round(-11.5)

    int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认值为null,即Integer可 ...

随机推荐

  1. C# 使用NPOI出现超过最大字体数和单元格格式变成一样的解决

    在使用NPOI写入Excel文件的时候出现“它已经超出最多允许的字体数”,查询资料发现是字体创建太多的原因,需要将常用字体创建好,传入CellStyle中.参考(http://www.cnblogs. ...

  2. Android如何实现超级棒的沉浸式体验

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由brzhang发表于云+社区专栏 做APP开发的过程中,有很多时候,我们需要实现类似于下面这种沉浸式的体验. 沉浸式体验 一开始接触的 ...

  3. java线程介绍

    文章讲解要点 1.线程创建几种方式2.线程常见设置方法,包括优先级.优先级休眠.停止等3.多线程间的数据交互与锁机制4.项目源码下载   线程介绍.png 一.线程创建方式 常见的线程创建方法以下三种 ...

  4. 【原】Java学习笔记022 - 字符串

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 字符串 // 定义 ...

  5. go语言学习-常用命令(四)

    go常用命令 go get:获取远程包(得装git) go run:直接运行程序(写代码时调试用) go build:测试编译,检查是否有编译错误 go fmt:格式化代码(一般不咋用,IDE都自带了 ...

  6. 安装ESXi部署OVF详细步骤

    整个安装部署过程均在个人环境进行.欧克,我们现在开始. 一.安装ESXi 1.Enter回车 2.Enter回车继续 3.F11,接受继续 4.Enter,回车继续(选择安装ESXi的设备) 5.默认 ...

  7. Java基础——1 一切都是对象

  8. 英语口语练习系列-C12-不了解

    词汇 air [eə(r)] n. 空气 fresh air 新鲜的空气 warm air 暖暖的空气 I like to air the room. 我喜欢给房间通气. on the air 正在播 ...

  9. 英语口语练习系列-C07-谈女孩

    <将进酒>·李白 君不见黄河之水天上来,奔流到海不复回. 君不见高堂明镜悲白发,朝如青丝暮成雪. 人生得意须尽欢,莫使金樽空对月. 天生我材必有用,千金散尽还复来. 烹羊宰牛且为乐,会须一 ...

  10. 日志切割之Logrotate

    1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...