c++
abyness
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021-02-10
poj1581 题目思路较为简单,需要注意的是对于时间总和的判断计算。 可是为什么vjudge它编不来呢。。。 如果我的代码有问题欢迎评论指导。 #include <iostream> #include <string> using namespace std; using std :: string; struct s{ string teamname; int a[4] = {0},b[4] = {0},addtime = 0,addsub = 0; };原创 2021-02-10 23:18:16 · 137 阅读 · 0 评论 -
2021-01-26
poj-1579 Function Run Fun 记忆化递归 思路来自于这里 注意一下输出的样式 普通思路:先判断简单的大于20和小于等于0,然后在依题意翻译成递归函数,但是这样会超时。 记忆化递归思路: 整个数组来记录每一次递归时的结果(要初始化为零)在原有的代码上添加一个判断来确认当前递归是否已经有记录的结果,如果有则直接返回当前数组。 剩下的其实相当于 if(x<y && y<z) dp[x][y][z]=bfs(x,y,z-1)+bfs(x,y-1,z-1)-bfs(原创 2021-01-26 22:16:36 · 103 阅读 · 0 评论 -
2021-01-26
UVa 10323 - Factorial! You Must be Kidding!!! 递归函数 对于负的阶乘也给了定义,负数且为单数则为正无穷,负数且为双数则为负无穷。 #include <iostream> using namespace std; long long func(int n); int main() { int n; while(cin>>n){ if(func(n) > 6227020800 ||(n<0&am原创 2021-01-26 10:27:46 · 200 阅读 · 0 评论 -
2021-01-26
uva-492 Pig-Latin 核心思想来自于: 程序逻辑: 遇到标点符号->左边的下标打印符号,++向下一个字母,同时结束下表在这里开始->一直遇到字母直到下一个非字母,结束下标++至标点符号位置->此时一个单词的位置被起始和结束锚定,此时开始判断开头字母,由起始位置处理打印直到结束位置回到开头。 (程序开始时由字母开始,开始位置不动==0,结束位置++至符号,开始循环。) 领悟:并非需要改变整个数组,只是打印出来时处理打印方式。 ps: runtime error—————————原创 2021-01-26 09:25:56 · 158 阅读 · 0 评论 -
2021-01-25
poj2196 难点在于如何用程序计算出进制转化后的各位数和,用函数会比较方便。 见了鬼了,lang11我记得是可以支持连等号的,记错了? #include <iostream> using namespace std; int TransformSum(int a,int n); int main() { for(int i = 2992;i != 10000;i++){ if(TransformSum(i,10) == TransformSum(i,12) &a原创 2021-01-25 22:47:09 · 93 阅读 · 0 评论 -
2021-01-25
POJ-2361 井字棋合法判断 难点在于如何想到不合法的条件和判断输赢的算法 不知道为什么用范围for就莫名其妙的避免了那些个多出来的“\n”占用位置,有待解答。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; bool champion(char c[3][3],int a,int b); int main() { int n; for(s原创 2021-01-25 12:17:24 · 133 阅读 · 0 评论
分享