上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 67 下一页
摘要: 环形前缀和。 dist[i]存储第i个结点到第i+1个结点的距离,sum[i]为前缀和数组,每次取两种走法(顺时针、 逆时针)当中距离的较小值即可。 const int N=1e5+10; int dist[N]; int sum[N]; int n,m; int main() { cin>>n; 阅读全文
posted @ 2021-01-27 18:33 Dazzling! 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 手动实现stoi()方法。 int toInt(string s) { int res=0; for(int i=0;i<s.size();i++) if(isdigit(s[i])) res=res*10+(s[i]-'0'); if(s[0] == '-') res=-res; return r 阅读全文
posted @ 2021-01-27 17:40 Dazzling! 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 用数组sum保存每个学校的编号对应的总分,在输入时将每一个分数score累加到学校编号id对应的sum[id]中,然后遍历整个数组找将总分最高的学校编号。 const int N=1e5+10; int sum[N]; int n; int main() { cin>>n; for(int i=0; 阅读全文
posted @ 2021-01-27 16:29 Dazzling! 阅读(28) 评论(0) 推荐(0) 编辑
摘要: const int N=15; int a[N]; int n; int main() { n=10; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n-1;i++) for(int j=0;j<n-1-i;j++) if(a[j] > a[j+1]) 阅读全文
posted @ 2021-01-26 21:30 Dazzling! 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 两个数的排序,只需要比较一下,如果第一个比第二个大,交换一下,否则什么都不用做。 三个数的排序 ,可以先将前两个排序,保证第一个比第二个小。 然后将第二个和第三个数排序,保证第二个比第三个小。 经过上面两次排序,保证了第三个是最大的,但不能保证第二个还比第一个大,因为第二次排序的时候可能改变了第二个 阅读全文
posted @ 2021-01-26 15:40 Dazzling! 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 参考柳神代码,柳神的代码写的也太秒了Orz。啊这明明是个$20$分的题,我为什么还要参考,菜的安详+_+ 。 题意 要求原数字乘$2$后的结果是原数字的一个重新排列,用$cnt$数组记录原数和新数的各位数字情况,最后只有$cnt[1 \sim 9]$全为0才代表新产生的数是原数的一个排列。 思路 首 阅读全文
posted @ 2021-01-26 11:09 Dazzling! 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 一眼树的直径。 题意 给出N个结点与N-1条边,问:它们能否形成一棵N个结点的树?如果能,则从中选出结点作为树根,使得整棵树的高度最大。输出所有满足要求的可以作为树根的结点。 思路 当图连通时,由于题目保证只有N-1条边,因此一定能确定是一棵树,下面的任务就是选择合适的根结点,使得树的高度最大。具体 阅读全文
posted @ 2021-01-25 23:06 Dazzling! 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 树的直径的模板题。 从任意一个节点出发(以$1$号点为例),找出距离$1$号点最远的点$p$,$p$为直径的一个端点 将$d[p]$清$0$,找出距离$p$最远的点$q$,\((p, q)\) 即为直径的两个端点,$d[q]$即为树的直径长度 const int N=10010; vector<in 阅读全文
posted @ 2021-01-25 21:42 Dazzling! 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 鬼畜读入。。。 stringstream的使用 如果多条路径和相同的话,输出叶子结点上值较小的一个。 const int N=10010; string inorder,postorder; int in[N],post[N]; int pos[N]; int n; int minsum; int 阅读全文
posted @ 2021-01-25 17:38 Dazzling! 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 给定后序中序求先序,树中每个结点的值各不相同。 unordered_map<char,int> pos; string in,post; int n; void build(int inl,int postl,int n) { if(!n) return; char root=post[postl+ 阅读全文
posted @ 2021-01-25 10:48 Dazzling! 阅读(223) 评论(0) 推荐(0) 编辑
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 67 下一页