- 博客(6)
- 收藏
- 关注
原创 牛客网-子串计算
题目描述给出一个01字符串(长度不超过100),求其每一个子串出现的次数。输入描述输入包含多行,每行一个字符串输出描述对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。实例110101输出0 201 21 310 2101 2AC代码#include <bits/stdc++.h>#include <string>#include <map>using namespace std;
2021-03-09 17:47:12
338
原创 北邮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
446
原创 北邮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
210
原创 北邮oj-最远距离
题目思路如图所示,可以将所有的操作归结为:第一步:将所有的forward操作一并做完,到达途中N轴上的一点。第二步:将所有的left转化为(360 - left)%360,即将所有的转向操作都变成右转,然后挑选这些右转操作,最终目的是使得min夹角尽可能大,让forward与backward夹角尽可能大,两边不变,两边夹角越大,第三边(output)越大。第三步:将所有的backward操作一并做完,到达终点。第四步:将第二步遗留的所有转向操作做完,原地转向,并不改变位置。第五步:计算out.
2021-03-01 15:26:38
329
原创 北邮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
129
原创 北邮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
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人