- 博客(7)
- 收藏
- 关注
原创 洛谷P4057 [Code+#1]晨跑 题解
首先了解一个公式:进而得到:具体代码如下:#include <cstdio>long long gcd(long long x,long long y)//gcd标准格式{ if(x%y==0) { return y; } else { gcd(y,x%y); }}int main(){ long long x=0,y=0,z=0; scanf("%lld %lld %
2020-08-01 20:18:25 287
原创 洛谷P2660 zzc种田
这道题我们先分两种情况讨论一:一开始就是正方形边长为a,那就不用分割了直接就周长:4*a二:一开始是矩形:①按照长a和宽b中较短的一个作为边长划分正方形,刚好划分完,假设a>b 周长:b*4*(a/b); ②按照长a和宽b中较短的一个作为边长划分正方形,无法刚好划分完,就进行循环或者递归;代码如下:#include<bits/stdc++.h>using namespace std;int main(...
2020-08-01 10:29:23 291
原创 洛谷P1918保龄球
这个题目有两种解法,一直是调用map库来开一个map,第二种方法是创建一个结构体,然后先排序再进行二分查找。这里先说代码二:先复习一下二分查找:int bsearchWithoutRecursion(node c[],int low,int high,int target){ while(low<=high) { int mid=low+(high-low)/2;/*使用(low+high)/2会有整数溢出的问题 (问
2020-07-28 16:33:47 283
原创 P1827美国总统
主要结构如下:1.如果序列空了,就没必要继续了2.取到前序序列的首字母,即根节点3.找到中序序列中根节点的位置4.删去前序序列中的根节点5.从0开始切割k个6.从k开始切割到最后7.从0开始切割k个8.从k+1开始切割到最后9.因为要输出后序序列,所以是左右根10.先遍历左子树,再右子树,再根节点这里利用到一个最重要的知识点——二叉树遍历。前序遍历:根左右 中序遍历:左根右 后序遍历:左右根前序遍历是先遍历根节点,再遍历根节点的左右子树。那么,前序序列的第一个节点,一
2020-07-24 10:46:13 265 1
原创 洛谷P1449 后缀表达式解答
这道题目分为两个部分:1.输入 while((op=getchar())!='@') { //输入部分 if(op>='0'&&op<='9')item*=10,item+=op-'0'; else if(op=='.')a[++i]=item,item=0; }2.选择运算部分if(op=='+')a[i-1]=a[i-1]+a[i],a[i]=0,i--;else if(op=='-')a[i-1]=a[i-1]-a[
2020-07-21 15:25:45 137
原创 洛谷P1028数的计算
首先,我们来看一下这道题的规律a[1]=1;a[2]=a[1]+1;//即小于等于二分之一自身的数的满足题意的个数+自身......a[n]=a[n/2]+...a[1]+1;如此以来复杂度为O(n^2)的算法就完成了,如下所示:include<bits/stdc++.h>using namespace std;int n,num,a[1001];//定义题目范围内的数组 int main(){ cin>>n;//输入 for(regist
2020-07-14 20:08:37 119
原创 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two题解
题目描述两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。追击在10 \times 1010×10的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。一个格子可以是:.空地; *障碍物; C两头牛; FFarmer John。这里有一个地图的例子:...
2020-07-10 08:45:33 870
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人