- 博客(14)
- 收藏
- 关注
原创 Halloween treats(抽屉原理)
https://vjudge.net/contest/374932#problem/B(题目链接如上)题意:给定邻居的糖果数,求糖果数和为c的倍数的邻居的下标题解:运用抽屉原理。先求出数组a的前缀和sum;sumk=a1+a2+a3+…+ak;(1)若sumk==0,则直接取1~k的区间下标;(2)若sumk!=0,则sumk%c的值r,r的取值在1~k-1;而sum1,sum2,sum3…sumk有k个数,则至少有两个数相同;即一定有sumi=sumj,也即sumi%c=sumj%c
2020-05-27 19:42:37 255
原创 Codeforces D. Buying Shovels
https://codeforces.ml/contest/1360/problem/D(题目链接如上)题意:总结下来就是在1~k的范围内找到n的最大因数x,ans=n/x开始的想法:从min(k,n)开始往下遍历到sqrt(n)找到最大因数。但是数据范围1e9,第一个样例就会超时。正解:从1开始到sqrt(n)遍历所有的因数x,并且判断是否在k的范围内,若在k的范围内就更新ans=min(ans,n/(x))。复杂度O(n^(1/2)),不会超时。一些吐槽:自己对于1到sqrt(n)
2020-05-25 17:38:25 259
原创 PTA 7-4 小字辈(dfs)
https://pintia.cn/problem-sets/1259041418971803648/problems/1259047109883162624(题目链接如上)题意:给定一个庞大家族的家谱,要请你给出最小一辈的名单。题解:结点设计:struct tnode{ int parent; int num; int level;//记录辈分,即在树的第几层}node[100005];思路:对每个结点,深搜直到它的祖先根节点返回,回溯的时候每一层的层数等于上一层的层数加一。如果搜
2020-05-23 23:11:59 667
原创 PTA 7-3 列出叶结点
https://pintia.cn/problem-sets/1259041418971803648/problems/1259046259496415233(题目链接如上)题解:1,用结构数组存储,注意char转换为int。2,利用vis数组记录出现过的孩子结点,则未出现过的即为根节点。3,最后再层序遍历(宽搜)输出叶子节点。AC代码:#include <iostream>#include <queue>using namespace std;int leave
2020-05-23 21:09:18 1413
原创 PTA 7-1 玩转二叉树
https://pintia.cn/problem-sets/1259041418971803648/problems/1259046259492220928(题目链接如上)题意:给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。利用中序遍历和前序遍历建树:node* buildPreInTree(int pl,int pr,int il,int ir){ if(il>ir) return NULL;
2020-05-23 11:53:17 2874 1
原创 Codeforces D.Constructing the Array(优先队列)
https://codeforces.ml/contest/1353/problem/D(题目链接↑)题解这题主要用到优先队列,size(区间长度)大的排在前,size相同的left(左端点)小的排在前。主要积累一下这里的语法:struct node{ int size,l,r; bool operator > (const node& a) const{ if(size!=a.size) return size<a.size; else return l>a
2020-05-20 17:51:35 256
原创 Codeforces C1. Simple Polygon Embedding
https://codeforc.es/contest/1354/problem/C1(题目链接如上↑)推导过程:AC代码:#include <iostream>#include <cstdio> #include <cmath>using namespace std;#define PI 3.141592653589//要比6位多几位int main(){ int t; cin>>t; while(t--){ double n,
2020-05-18 20:54:30 427
原创 Codeforces B. Orac and Models (dp)
Codeforces Round #641 (Div. 2) B. Orac and Models**题目链接:**https://codeforc.es/contest/1350/problem/B(或者点这里)首先,我太菜了我太菜了我太菜了。然后,不气馁加油加油加油。最后,dp对我来说还是个大难关,努力攻克吧。然后是题解:dp[i]用来记录对应结尾为是s[i]的满足题目下标整除条件的最长上升子序列的长度。对应每个i枚举能整除i的j,然后不断更新:dp[i]=max(dp[i],dp[j]
2020-05-13 18:11:48 298
原创 修饰符protected,public,private详解(Java)
修饰符protected,public,private详解这是我在学习《Java语言程序设计》(Y.Daniel Liang)时做的学习笔记。1.修饰符private,protected和public都称为可见性修饰符或可访问性修饰符,因为它们指定如何访问类和类的成员。这些修饰符的可见性按以下的顺序递增:私有<默认<被保护<公共成员。2.下表总结了类中成员的可访问性3...
2020-05-06 19:35:44 1574
原创 树和二叉树(学习笔记)
树和二叉树树是n个结点的有限集。根——即根节点(没有前驱)叶子——即终端结点(没有后继)森林——即m棵不相交的树的集合有序树,无序树结点的度——结点挂接的子树数树的度——所有结点度中的最大值可以证明,所有树都能转为唯一对应的二叉树二叉树的基本特点:1.结点的度≤22.有序树二叉树的性质:1.在二叉树的第i层上至多有2^(i-1)个结点。2.深度为k的二叉树至多有2^k-...
2020-05-06 00:59:41 324
原创 抽象类和接口(部分知识点整理)
抽象类和接口这是我在学习《Java语言程序设计》(Y.Daniel Liang)时做的学习笔记。1.父类定义了相关子类的共同行为。接口可以用于定义类的共同行为(包括非相关的类)。2.抽象类不可以用于创建对象。抽象类可以包含抽象方法,这些方法将在具体的子类中实现。3.有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类。public abstract class...
2020-05-05 21:11:41 257
原创 拓扑排序(学习笔记)入门+判断是否有环
拓扑排序(学习笔记)对一个有向无环图(DAG)进行拓扑排序。实现:1.在有向图中选一个没有前驱的顶点并且输出2.从图中删除该顶点和所有出边3.重复1、2步骤,直至所有顶点输出初始化:vector<int>vec[maxn];scanf("%d%d",&n,&m);//n个点,m条边int n,m,u,v;int InDeg[maxn];//入度 w...
2020-05-02 18:43:04 768
原创 集训队 LPOJ round10 D Come Minion!
**D Come Minion!**题意:给定一个地点地图,地点之间的路线,以及沿途的试验,帮助星际忍者达到他们的目标。你必须避免任何忍者无法战胜的考验。然后告诉星际忍者他们是否能够到达目标并拯救世界。Sample Input:23stairstalkingstaring4 50 3 talking0 1 abc0 2 xyz1 3 stairs2 3 staring...
2020-05-01 21:37:24 402 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人