• [摸鱼]2017英才计划冬令营游记+工坊一题解


    概述

    本次冬令营是参加英才计划以来第一次与全国各地的计算机英才见面,感觉非常兴奋,从算法之外也认识到了竞赛以外的世界,开阔了眼界,确立了今后一年的培养目标,成为了寒假中一次非常难得的经历。

    Day -1

    主要收拾了一下东西做了一些出行前的准备,还做了几个bzoj上的算法题,详细内容请见我的博客

    Day 0

    报道。

    报到日。
    早上五点起来出门赶飞机。
    中午就到了厦门,吃了点午饭,逛了一会厦门大学就去报道了。

    破冰。

    晚上没有老师,大家都玩的很棒,充分起到了破冰的目的,大家从全国各地而来,之前仅仅在网路上有过些许的交流,这一次是真正的所谓”面基“。
    我们小组充分展现了(lambda)符号的各种意义。

    Day 1

    餐品

    厦门大学的饭还是非常好吃,虽然菜有些辣,但是瑕不掩瑜。

    教授的报告——怎样知道你是你

    这一场报告主要介绍了身份识别技术在当代的发展,其中展现了一些专家做科研的过程值得我们学习。
    身份识别技术在现代有着非常重要的作用,教授主要介绍了:
    -指纹识别
    -瞳孔识别
    -etc.

    参观SCSC

    这个研究所主要介绍了点云技术,虽然没有听懂,但是感觉很厉害,听学长说我们的导师陈宝权教授对此领域有涉猎,我不禁动起了下一年的工作就搞这个的念头。
    具体地说,点云技术就是一种建模技术,在市政工作中有着非常重要的作用。
    之后我们还体验了VR,虽然感觉还没有家里的暴风魔镜效果好。

    参观美亚柏科

    参观之前对这个公司并没有多少了解,参观之后感觉这个公司技术还是比较强,好像又红又专
    不过里面的一些保密技术还是非常有趣的。

    Day 2

    今天一天都浸在了工坊之中,把自己的全身心投身于一件事的感觉非常棒。下面我来介绍以下工坊一以及我们团队对于工坊一的工作。

    题目

    机器人寻宝。

    给定一N*M矩阵,其中有一些三角形或凸四边形障碍和补充能量的电池。有一机器人从起点(sx,sy)走向终点(tx,ty),每次可以向上下左右任一方向移动一个单位,消耗一单位能量,若机器人接触电池,则获得电池中储存的能量。在过程中,若机器人走出边界、接触障碍或电量为0则失败。
    ­求一条由起点到终点的路径,使得机器人在达到终点时获得尽可能多的能量值。

    题目分析

    对多边形障碍的处理。

    方法一:叉乘法




    方法二:射线法

    这个方法是课堂上俞教授给我们讲的。

    方法三:面积法

    方法四:转角法


    知乎上的相关资料

    方法五:斜率法

    很多小组都用的这个方法判多边形,但是很显然这个方法有两个缺点:
    -浮点精度误差。在计算机处理图形的时候会有很大的误差。
    -特殊情况判定。斜率不存在怎么办?
    综上所述,这个方法毫无优点。

    如何初始化

    简单来讲就是通过bfs来初始化,详细内容可以看我在后边附上的课件。

    求解答案

    第一种方法:

    直接暴力辣。我们可以枚举一下就可以辣。

    第二种方法:状态压缩动态规划

    如果前面两个步骤都做到位,那这个题就是模板题辣,您随随便便设计一下状态,转移一下就写出来辣,还是非常好写的。

    第三种方法:随机算法

    这个算法的基础可以说是这次冬令营我们收获最大的地方。
    开始我和HSZ大佬的意见一样:

    这是一个NP问题。

    但是经过俞教授的讲解,我们发现可以使用随机算法求解一个近似解,由于随机算法在竞赛中不常用,所以我们都没有进行学习。
    可以说,开启了一个新世界

    当然这个算法我还是不会,今后一定要找机会学习。

    输出方案

    方案输出非常简单,直接记录fa数组暴力回溯就好辣。
    然而却调试了很长时间,发现自己是因为dp中一个条件写错了orz

    总结。

    这个题是一个综合了许多题目的好题。
    首先通过这个题我学会了计算几何的初级方法。
    其实计算几何就是计算机图形学中的一个重要部分,通过对他的学习,我感受到了计算机图形学的美感,激励我在今年的培养过程中继续学习计算机图形学的相关知识。
    同时学会了gdb中watch的调试方法,具体来说就是:
    watch a,观察一个变量,相当于一个断点,当这个变量发生了变化我们就可以停住。
    具体地,比如说:

    for(int i = 1; i <= n; i++) ;
    

    对于这段代码,如果在gdb中调用命令

    watch i < 9
    

    就可以在i等于9的时候停住。
    非常好用的一个功能。

    Day 3

    今天进行了工坊的总结,在工坊的总结中,我们锻炼了能力,看到了其他小组的强大,同时对于工坊三非常感兴趣,想回头研究一下AI技术。
    晚上进行了文艺汇演,我们”SD蒟蒻演唱团“演唱了一首”我的天空——OI版“。
    下面贴上歌词。

    我的天坑重制版——我的OI
    词:萌新李庚辰
    曲:南征北战
    演唱:山东蒟蒻演唱团
    在搞这OI ,I wanna say so high
    再做这套模拟 ,I want new life
    想要打道AC , 却跪到了现在
    再见这个dalao环绕的时代
    再打一次贪心 骗分失败
    再做一次动规 数组爆开
    Now I wanna say
    HelloHello 我真的好水
    HelloHello
    秒开栈和队列
    再来个暴力求解
    却还是打不动
    WA在极限数据中
    在无尽的黑夜
    码程序码到吐血
    但是我还有梦
    不放弃 不放松
    在我的天坑
    来英才计划的各位其实都是大神
    在CF上不是红名就是橙名
    随便就能单手切开那动态仙人掌
    我双膝跪地 看着各位dalao远去/
    先学完记忆化再学迭代加深搜索
    却发现还要学图论以及那网络流
    计算机漫漫长路我们还要走很久
    但请你相信 我们最终能成功
    笑谈同余与取膜
    搞扩展欧几里德
    虽然现在是蒟蒻
    慢慢会懂更多
    树链剖分不会做
    打个表也能凑合
    我依然拥有梦
    一代神犇的梦
    在我的天空

    Day 5

    返程。
    虽然有不舍,但是这是新一段旅程的开始。

    附录

    [1]SD蒟蒻队:AngryBirds解题报告
    下载链接
    [2]俞勇教授课件
    下载链接

  • 相关阅读:
    4种xml解析器区别
    eclipse的快捷键(常用)
    eclipse修改项目访问前缀
    oracle创建用户
    导入安全证书到jdk
    laravel 命令行输出进度条
    sql 事务的四种隔离级别
    supervisor 通过图形界面管理
    supervisor "INFO spawnerr: unknown error making dispatchers for xxx" 错误
    linux expect 的使用
  • 原文地址:https://www.cnblogs.com/gengchen/p/6384570.html
Copyright © 2020-2023  润新知