北邮oj练习
xinghao1233
这个作者很懒,什么都没留下…
展开
-
北邮oj-first集
题目要求给定一定数量的文法生成式,求出所有非终结符的first集合。题目思路由于答案要求,非终结符按照字母顺序输出,非终结符的first集合也需要按照字母顺序输出。所以采用map中加入set的结构。输入数据结构定义struct test { char left; //生成式左边的非终结符 string right; //生成式右边的字母集合};vector<test> v; //用于存放输入案例输出数据结构定义map<char, set<char&g.原创 2021-03-08 16:41:49 · 410 阅读 · 0 评论 -
北邮oj-Square
题目要求已知正方形对角线上两个点求另外一条对角线上的两个点坐标。并将x小值的最先输出;按图中所示列出方程组X1X_1X1 + X3X_3X3 = X0X_0X0 + X2X_2X2Y1Y_1Y1 + Y3Y_3Y3 = Y0Y_0Y0 + Y2Y_2Y2由Y1−Y3X1−X3\frac{Y_1 - Y_3}{X_1 - X_3}X1−X3Y1−Y3 = Y2−Y0X2−X1\frac{Y_2 - Y_0}{X_2 - X_1}X2−X1Y2−Y0推出:X1.原创 2021-03-08 15:11:03 · 165 阅读 · 0 评论 -
北邮oj-最远距离
题目思路如图所示,可以将所有的操作归结为:第一步:将所有的forward操作一并做完,到达途中N轴上的一点。第二步:将所有的left转化为(360 - left)%360,即将所有的转向操作都变成右转,然后挑选这些右转操作,最终目的是使得min夹角尽可能大,让forward与backward夹角尽可能大,两边不变,两边夹角越大,第三边(output)越大。第三步:将所有的backward操作一并做完,到达终点。第四步:将第二步遗留的所有转向操作做完,原地转向,并不改变位置。第五步:计算out.原创 2021-03-01 15:26:38 · 259 阅读 · 0 评论 -
北邮oj-反转单词
题目要求将一个句子里面的所有单词顺序反转输出。AC代码#include <bits/stdc++.h>#include <string>#include <stack>using namespace std;int main() { string input; while (getline(cin, input)) { stack<string> s; string temp; int index; while (!i.原创 2021-03-01 14:07:34 · 98 阅读 · 0 评论 -
北邮oj-寻找宝藏
题目要求给定节点,要求找到从根节点往该节点寻找的概率。AC代码#include <bits/stdc++.h>#include <vector>using namespace std;struct TreeNode { //每个节点保存一个儿子数组和父亲 int father; vector<int> son; TreeNode(): father(-1), son() { son.clear(); }};int main() { .原创 2021-03-01 14:01:48 · 179 阅读 · 0 评论