文章目录

  • 三角形
  • Ants
  • 难度增加的抽签的抽签问题
三角形

参考博文:挑战程序设计竞赛: 三角形
思路:先排序,使得可以确定比较时的最大边,然后遍历,每一次取三个边,判断是否满足三角形条件。
代码:

#include <iostream>
#include <algorithm>
using namespace std;const int MAX = 101;bool check(int a, int b, int c)
{if(a+b>c) return 1;else      return 0;
}
int main()
{int n, a[MAX];while(cin >> n){for(int i=0; i<n; i++)cin >> a[i];//排序的目的是使得k对于最长的边sort(a, a+n);int Max = 0;for(int i=0; i<n; i++){for(int j=i+1;j<n; j++){for(int k=j+1; k<n; k++){if(check(a[i], a[j], a[k]) && a[i]+a[j]+a[k]>Max)Max = a[i]+a[j]+a[k];}}}cout << Max << endl;}return 0;
}
Ants

参考博文:挑战程序设计竞赛:Ants
方法一:
思路:
最短时间:需要取得最靠近中间的蚂蚁,然后求出其最短到达边缘(任意一边均可)的时间。
最长时间:需要取得最靠近边缘的蚂蚁(任意一边均可),然后求出其到达另一边的时间。
代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;const int MAX = 1000001;
int a[MAX];int main()
{int T, L, n;scanf("%d", &T);while(T--){scanf("%d%d", &L, &n);for(int i=0; i<n; i++)scanf("%d", &a[i]);sort(a, a+n);//最短时间int mid = L/2, m;int p = lower_bound(a, a+n, mid)-a;if(abs(a[p]-mid)>abs(a[p-1]-mid))m = a[p-1];else m = a[p];int te = min(m, L-m);//最长时间int tl = max(L-a[0], a[n-1]);printf("%d %d\n", te, tl);}return 0;
}

方法二:
思路:
最短时间:每个蚂蚁均向其最近边缘前进,求出所有蚂蚁用时的最长时间。
最长时间:所有蚂蚁均向其最远边缘前进,求出所有蚂蚁用时的最长时间。
代码:

#include<iostream>
#include<stdio.h>
using namespace std;const int MAXN = 1000005;
const int inf = 1<<23;
int a[MAXN];
int main()
{int T;int L, n;int ans_max;int ans_min;cin >> T;while(T--){ans_max = -inf;ans_min = -inf;scanf("%d%d",&L,&n);for(int i=0; i<n; i++){cin >> a[i];ans_min = max(ans_min, min(a[i],L-a[i]));ans_max = max(ans_max, max(a[i],L-a[i]));}printf("%d %d\n", ans_min, ans_max);}return 0;
}
难度增加的抽签的抽签问题

参考博文:挑战程序设计竞赛:难度增加的抽签问题
注意点:

  • 复杂度降低的转化思路(用空间换时间):将一部分值提前计算出来存起来,然后减少两层循环,再用二分查找寻找值。
  • STL中提供了二分查找函数 binary_search(a,a+n,key)

挑战程序设计竞赛(第一章)相关推荐

  1. 挑战程序设计竞赛(第二章习题总结)

    文章目录 搜索 Curling 2.0(POJ 3009) Meteor Shower(POJ 3669) Smallest Difference(POJ 2718) Hopscotch(POJ 30 ...

  2. 挑战程序设计竞赛(第二章:2.5 图论)

    文章目录 RoadBlocks Conscription Layout RoadBlocks 参考博文:挑战程序设计竞赛: Roadblocks 参考博文:[dijkstra优化/次短路径]POJ32 ...

  3. 【操作指导 | 代码实现】挑战程序设计竞赛2:算法和数据结构

    书籍封面 第一章 前言 1. 本人衷心建议 ~~~~~~       如果你是一位初学者,我指的是你只会基本的 C/C++ 编程,即使编的很烂,这本书对于你算法和数据结构的提升非常有帮助,所涉及的每一 ...

  4. 《挑战程序设计竞赛》 读后感(转载)

    <挑战程序设计竞赛> 读后感 最近要开始准备面试找工作,算法是准备的重中之重,舍友推荐了<挑战程序设计竞赛>这本书.花了一周的时间大体过了一遍,该书真切地让我理解了" ...

  5. 挑战程序设计竞赛书的题解总结(连载中)

    写在前面的话(前言) 每天无所事事真是无趣啊,作为一个将来要征战acm的优秀青年,我感到有刷点什么的必要了! 毕竟同级的acm大佬们真是太强了,跟着老师走肯定会一直被暴打下去..去oj上刷题呢,又感觉 ...

  6. 挑战程序设计竞赛(第2版)》

    <挑战程序设计竞赛(第2版)> 基本信息 作者: (日)秋叶拓哉 岩田阳一 北川宜稔 译者: 巫泽俊 庄俊元 李津羽 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787 ...

  7. ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)

    白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...

  8. 挑战程序设计竞赛——详解DFS及BFS

    挑战程序设计竞赛--详解DFS及BFS 一.学会要用到的stl函数,Stack.Quene.Pair 1.Stack(DFS隐式的用到,并与Queue对比记忆) 头文件==#include== sta ...

  9. 《挑战程序设计竞赛》阅读笔记二 之 ALDS1_2_C Stable Sort

    <挑战程序设计竞赛>阅读笔记二 之 ALDS1_2_C Stable Sort 第三章 Sort I ALDS1_2_C Stable Sort 这道题目,就是为了说明 冒泡排序是稳定排序 ...

  10. 《挑战程序设计竞赛》--初级篇习题POJ部分【动态规划】

    关于基本的动态规划和经典的动态规划,在之前已经总结过了,可以温习一下: 传送门 这次是延续上次的<挑战程序设计竞赛>初级篇,总结部分poj上的练习题,主要是DP方面的练习题: 一.基础的动 ...

最新文章

  1. WinCE 7 Mouse HOOK
  2. concurrent(六)同步辅助器CyclicBarrier 源码分析
  3. [转]asp.net文件下载方法...
  4. STM32 基础系列教程 33 - Lwip_tcp_client
  5. Bitcoin代码中的Boost signals(1)
  6. C/C++数组指针和指针数组
  7. 解密Go协程的栈内存管理
  8. oracle19c二次安装报错,Windows10安装Oracle19c数据库详细记录(图文详解)
  9. java父类与子类的构造方法_java中的加载顺序以及父类与子类的构造方法 | 学步园...
  10. 超级终端连接华为交换机_win8系统教你实现用超级终端连接华为交换机的超详细图文教程...
  11. echo命令的15个用法
  12. 如何将视频网站的视频下载为mp4格式
  13. Simulink步长选择
  14. 计算机语言有许多种其中与硬件直接相关的是,【单选题】计算机语言有许多种,其中与硬件直接相关的是 A. 机器语言 B. 网络语言 C. 高级语言 D. 自然语言...
  15. 机器人genghis_家用机器人的未来
  16. 服务器虚拟打印机为什么经常打打不,打印机虚拟论文,关于制作PDF打印服务器相关参考文献资料-免费论文范文...
  17. Java高尔夫_java基础视频教程 高尔夫球基础视频教程
  18. 页游安全攻与防,SWF加密和隐藏密匙
  19. java 文字转语音_java 实现文字转语音 -仅限windows系统
  20. Outlook添加网易企业邮箱总是无法验证您连接到的服务器使用的安全证书

热门文章

  1. 广东计算机科学导论考试试卷,计算机科学导论试题A答案
  2. 2022电工杯B题思路模型分析
  3. linux 服务器 硬盘测试工具,linux硬盘检测工具:Smartmontools使用指南
  4. BUUCTF-Reverse-相册
  5. java记事本教程_使用记事本开发java程序的步骤
  6. 雷军:《硅谷之火》给了我一个世界级的梦想
  7. 小米android截屏快捷键是什么原因,小米截屏快捷键是什么 如何快速截图快捷键...
  8. vue前端页面数据加载添加loading效果
  9. 58同城峰会落幕 智能化和下沉市场能否让58一直神奇?
  10. 全国计算机二级c真题及答案,全国计算机二级c语言历年真题及答案