当前搜索:

2017 ACM ICPC East Central North America Regional Contest

手速场。。就不放队友的代码了。 A: Abstract Art 题目大意 给定多个多边形,求面积并。 题解 模板题。 B: Craters 题目大意 给定多个圆,求这些圆的凸包周长。 题解 一个圆最多引出两条切线,计算切线注意一些情况就好了。 不过我的...
阅读(8) 评论(0)

简单的C语言解释运行器实现(六)—— 生成指令

上一篇:语义分析 执行指令 在我们有了带类型的语法树后,我们就可以生成指令了。如果你有读过Java虚拟机规范的话,可以看到庞大的JVM指令集,好像是近200条?接下来我们要考虑代码的执行过程并生成指令。 首先我们考虑代码的执行过程,我们知道程序运行是基于栈的,那么具体是怎么运行的呢?开篇...
阅读(33) 评论(0)

简单的C语言解释运行器实现(五)—— 语义分析

上一篇:语法分析 下一篇:生成指令 我们在语义分析阶段完成语法树节点类型的推导,并完成数组维度常量表达式的计算以及数组访问的修改。 定义类型 首先我们需要明确有哪些类型,我们简化的C语言只有如下类型:int, char, short, bool, long, double, float...
阅读(38) 评论(0)

简单的C语言解释运行器实现(四)—— 语法分析

上一篇:定义语法 下一篇:语义分析 语法树 是啥 在知道了文法的定义后,我们就要根据文法分析生成语法树了。 语法树可以表达是文法展开的过程,比如i+i*i 对应文法是 E ::= T | E + T | E - T T ::= F | T * F | T / F F ::= ...
阅读(35) 评论(0)

2017 ACM ICPC Asia Regional - Daejeon Programming Constest

A: Broadcast Stations 题目大意 给定一棵树,选一些节点iii,赋予P(i)P(i)P(i)表示节点能覆盖到距离不超过P(i)P(i)P(i)的所有点,如果P(i)=0P(i)=0P(i)=0,不能覆盖本身,问min∑P(i)min∑P(i)\min \sum P(i)。 ...
阅读(47) 评论(0)

简单的C语言解释运行器实现(三)—— 定义语法

好的,词法分析就结束了,我们开始语法分析吧。 首先为了简化问题,我们对C语言作出如下限制: 1. 没有switch语句 2. 不支持函数指针 3. 没有结构体、联合体 4. 以及一些其他的语句 预处理器将在第七篇中讲到。编译阶段将不会有预处理指令(#include等)。 我们要处理的...
阅读(26) 评论(0)

简单的C语言解释运行器实现(一)—— 词法分析

引入 编译器的构造想必度过编译原理的同学已经了解了。大概分为 预处理器 -> 编译器 -> 汇编器 -> 链接器,4个阶段。 编译器又可以分为词法分析 -> 语法分析 -> 语义分析...
阅读(30) 评论(0)

Petrozavodsk Summer 2017 JOI TST 2012 Selection | Kangaroo | 动态规划

G: Kangaroo 题目大意 有n(1≤n≤300)n(1≤n≤300)n(1\leq n\leq 300)只袋鼠,每个袋鼠大小为aiaia_i,袋子大小为bibib_i。袋鼠袋鼠至多装1只袋鼠,且满足被装袋鼠的大小小于袋子的大小。一个装袋鼠的合法方案指的是不存在一只袋鼠可以装进其他袋...
阅读(41) 评论(0)

Petrozavodsk Summer Training Camp 2017, Warsaw U Contest

C: Painting 题目大意 你有数字1~n,对于每个数字i,用且仅用一次刷子将某个区间修改为i。每次刷子的代价为区间长度。总代价最大是多少? 比如刷后的数列是2 1 2 3,那么可以:[1,4]=3,[1,3]=2,[2,2]=1。总共代价为8是最大的。 题解 首先我们可以搞出区间...
阅读(70) 评论(2)

Petrozavodsk Winter-2018. Carnegie Mellon U Contest

D: Octagons 题目大意 八边形网格中,每个点连出的3条边分别标号a,b,c,一个八边形内的8条边最多2种标号,问给定一个经过边的标号序列,判断是否是一个闭合的环。 题解 我们可以发现,如果要成为一个闭合的环,至少会经过一个8边形上连续的5条边。比如abababab的八边形...
阅读(38) 评论(0)

CodeForces Gym 101221 | 2014 World Finals | A Baggage | K Surveillance

A: Baggage 题目大意 一开始坐标[−2n+1..2n][−2n+1..2n][-2n+1..2n]中,[1..2n][1..2n][1..2n]按顺序放BABABA...BA,一共nnn个BA,坐标[−2n+1,0][−2n+1,0][-2n+1,0]是空的。每次可以移动连续2个字母...
阅读(34) 评论(0)

CodeForces Gym 101208 | 2013 World-Finals (需补坑)

感觉自己被虐千百遍,看着final的队伍做题速度++++很难受。 最后只做了6题。 A: Self-Assembly 题目大意 C: Surely You Congest 题目大意 给出一个无向有权图,已知每个点会有一些汽车,这些汽车需要到1号点,汽车只会走最短路,每条路同...
阅读(30) 评论(0)

CodeForces Gym 101611| Moscow Subregional of Northern Eurasia Programming Contest, ICPC 2017-2018

A: Advertising Strategy 题目大意 题解 #include <cstdio> #include <algorithm> using namespace std; type...
阅读(104) 评论(0)

Codeforces Gym 101612 | 2017-2018 NEERC St Petersburg Subregional

居然这套题要文件输入输出。。 A: Auxiliary Project 题目大意 Anna的机器可以显示最多n条灯条,问显示n条灯条能表示的数字的和最大是多少。 题解 因为n不大,所以完全背包即可。 #include <cstdio&amp...
阅读(52) 评论(0)

实现简单的学生选课信息管理系统

中山大学软件工程程序设计I 大作业。要求本系统模拟实现学生课程信息管理系统,其中包括学生信息,课程信息以及学生的选课信息(储存在文本文件当中),其中功能包括三部分:学生相关功能 添加学生信息到学生信息文件当中,学生信息包括:学号(stuId),姓名(stuName),性别(stuSex) 删除学生...
阅读(166) 评论(0)

设计简单的贪吃蛇AI

前言接着上一篇设计简单的贪吃蛇。本博客的目标是写出一个通过几率比较大的贪吃蛇AI。代码重构由于设计AI什么的代码我自己不太会用C写出较为易写的代码,这篇博客的源代码采用C++实现,重构了上一篇简单的贪吃蛇的C代码。 新重构后的代码有4个部分:Game类表示地图和一小部分逻辑,Snake类表示蛇和...
阅读(452) 评论(0)

设计简单的贪吃蛇

设计要求设计一个简单的贪吃蛇,支持按一次键移动一格或者是按一次键修改蛇的运动方向并不断地运动,允许吃到食物后蛇长+1,碰到障碍物或者是蛇身游戏结束。实现程序主干首先程序主干很明显:是一个循环。包含判断按键来决定蛇的运动方向:int main() { // ... while (!g...
阅读(146) 评论(0)

BZOJ 1500|NOI 2005|维修数列|Splay

这题没啥好说的。。主要是用来贴模板 3.6s 尝试了抽象Splay这个类,不过卡在了内存池怎么写的问题上。。。感觉对C++理解还不够深刻。#include <cstdio> #include <stdexcept> #include <algorithm> u...
阅读(101) 评论(0)

IT行业的疯狂吸金

背景都称第三次工业革命是信息革命,前有计算机的诞生,后有互联网的发明。信息技术行业主导了近几十年的发展。从目前美国市值最高的几家公司来看,基本都是IT行业的公司,比如Apple,Google,Microsoft,Amazon,Facebook等,这些公司站在一个朝阳产业的风头,公司的总体发展十分快...
阅读(217) 评论(0)

Java 语言的发展历程

Java 是目前最流行的语言之一,Java 的应用相当广泛,Java是最流行的基于虚拟机的编程语言……这么火的Java,经历的怎么样的发展历程才走到今天的呢?Java 0Java的原型是1991年的Oak。Oak语言一开始是设计用来给电视编程的,不过Oak太先进了导致电视跑不动Oak代码。后来Oa...
阅读(183) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 18万+
    积分: 6400
    排名: 4747
    ?神?论文
    http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf