- 博客(6)
- 收藏
- 关注
原创 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
88
原创 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
54
原创 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
134
原创 2021-01-26
uva-492 Pig-Latin核心思想来自于:程序逻辑:遇到标点符号->左边的下标打印符号,++向下一个字母,同时结束下表在这里开始->一直遇到字母直到下一个非字母,结束下标++至标点符号位置->此时一个单词的位置被起始和结束锚定,此时开始判断开头字母,由起始位置处理打印直到结束位置回到开头。(程序开始时由字母开始,开始位置不动==0,结束位置++至符号,开始循环。)领悟:并非需要改变整个数组,只是打印出来时处理打印方式。ps:runtime error—————————
2021-01-26 09:25:56
91
原创 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
45
原创 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
71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人