oj

isaster(Comet OJ - Contest #11D题+kruskal重构树+线段树+倍增)

橙三吉。 提交于 2019-11-30 06:23:46
目录 题目链接 思路 代码 题目链接 传送门 思路 \(kruskal\) 重构树 \(+\) 线段树 \(+\) 倍增 代码 #include <set> #include <map> #include <deque> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <bitset> #include <cstdio> #include <string> #include <vector> #include <cassert> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long LL; typedef pair<LL, LL> pLL; typedef pair<LL, int> pLi; typedef pair<int, LL> pil;; typedef pair<int, int> pii; typedef unsigned long long uLL; #define fi first #define se second #define lson (rt<<1) #define

Comet OJ - Contest #11 题解&赛后总结

半世苍凉 提交于 2019-11-30 06:15:44
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最小值)和原数最低位的差。 令$S$为输入数字串,则答案为 $(\min_{i=1}^{n}S_i-S_n)%10$ 。 时间复杂度 $O(n)$ 。 B.usiness -Problem designed by Winniechen- 这是一个很显然的动态规划问题。 令$g_{i,j}$表示第$i$天,手里有$j$个节点,最多会返还多少节点。 第$i$天获得节点的过程转移为$g_{i,j+f_j}=\max(g_{i,j+f_j},g_{i-1,j})$,而对于存储节点的过程,只需对每一种存储方式做一个完全背包即可。 C.elebration -Problem designed by Starria- 定义长度不超过 $\frac{n-1}{2}$ ,且不含重复颜色的段为合法的段。记 $pre_x$ 为以 $x-1$ 为右端点的合法段最远的左端点, $nxt_x$ 为以 $x$ 为左端点的合法段最远的右端点。 枚举题面所述三元组中的 $a,b(a<b\le nxt_a+1)$ ,则合法的 $c$ 是 $(b,nxt_b+1]$ 与 $[pre_{a},n]$ 的交集。也就是说,当

杭电oj 1001

房东的猫 提交于 2019-11-30 05:49:00
Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … + n. Input The input will consist of a series of integers n, one integer per line. Output For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer. Sample Input 1 100 Sample Output 1 5050 Author DOOM III Recommend We have carefully selected several similar problems for you: 1002 1090 1003 1091 1004 #include<iostream> using namespace std; int main() { int a,n,sum;

[PAT]PAT使用Java解题时的注意点

天大地大妈咪最大 提交于 2019-11-29 20:25:10
在PAT的OJ系统上用Java解题时,需注意下面这些地方,否则都不知道错在哪里(第一次入坑好久没出来) 不要输入package名字 自己在本地调试的时候,可以在中间用System.out.print等输出语句调试,但是在PAT的OJ系统上,只有输出最终结果的时候,才可使用System.out.print等输出语句 类名必须为Main.否则出现编译错误,“class xxx.java is public,should be declared in a file named xxxx” 牛客网 PAT历年真题及模拟题在线编程练习 的 OJ会公开一些测试用例,方便排除bug,而PAT本身是没有公开测试用例的,有时侯根本不知道哪里错了 来源: CSDN 作者: 开发维护 链接: https://blog.csdn.net/zhouhuakang/article/details/49924483

【力扣OJ题】相同的树

杀马特。学长 韩版系。学妹 提交于 2019-11-29 19:39:35
问题描述: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / \ 2 2 [1,2], [1,null,2] 输出: false 示例 3: 输入: 1 1 / \ / \ 2 1 1 2 [1,2,1], [1,1,2] 输出: false 分析: 把它直接看成只有三个节点(根节点,左子树,右子树)的树,不需要展开,直接调用。 1.如果p这棵树的根节点是null的并且q这棵树的根节点也是null,虽然他们是空树,但是他们依旧是相同的树。 2.如果p或者q只有一个是null,那么直接返回false; 3.如果根节点p的val和根节点q的val值相同,并且 p 的左子树和右子树都与 q 的左子树和右子树相同(这一块的相同直接调用去判断,不需要展开,因为只要展开了就复杂了) class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p==null && q==null){ return true; } if(p ==null || q==null){ return false; }

湘潭大学oj循环1-5

╄→尐↘猪︶ㄣ 提交于 2019-11-29 15:49:54
#include <stdio.h> #include <stdlib.h> int main() { int b,s,n; int a[101]; A:scanf("%d",&n); s=0; if(n!=0) { for(b=1;b<=n;b++) { scanf("%d",&a[b]); if(a[b]%2==0) s=s+a[b]; } printf("%d\n",s); goto A; } return 0; } 来源: https://www.cnblogs.com/kyx599/p/11521258.html

Leetcode刷题修炼手册

你。 提交于 2019-11-29 11:17:06
“跟着我左手右手一个二叉树,堆栈链表反转换不同风格” 对于各位读研或者找工作的同学来说,Leetcode可能是无法绕过去的一个坎,很多公司的技术类岗位会从题库中抽题。此外,刷leetcode对于提高我们对数据结构与算法的应用和理解能力也有很大帮助,相信不少题友也是痛并快乐着。 同样将开始leetcode征程的我,特意整理了一套Leetcode刷题修炼手册,对于还没有开始或者正处于迷茫的同学可以起到一些帮助。里面有四种不同的刷题策略,欢迎自行对号入座。 一、刷题选择 盲目刷题不可取,因此,刷题要一定要搞清楚刷题的目的和原因。其实无外乎4种: 如果想提升自己的思维能力,可以按照AC率由低到高二分查找匹配自己当前水平难度的题目,然后适当挑战高难度题(二分时间复杂度是O(logn),至少比从易到难的O(n)节省时间) 如果想巩固某一专题,那自然应该按照tag来刷题,但是因为所用的方法在求解前已知,不太利于思维能力的提升 如果什么都不懂,那么建议随机刷题,一来可以涨见识,二来进步空间比较大 如果想提高AC率或者增加自信,那么建议刷水题 人与人之间还是有天赋差别的,但区别在于经验可以慢慢积累、再有个建议,题目如果太难超过当前自己能力的话,尝试一定时间后还是老老实实看题解吧 二、刷题方法 方法一:顺序法 建议未刷过题的新人按着顺序(AC)来。前 150 题覆盖了很多经典题目和知识点,指针法类如

如何使用leetcode刷题

折月煮酒 提交于 2019-11-29 11:16:25
如何使用leetcode刷题 依据频率推荐的题目 以下内容节选自 https://blog.csdn.net/lnho2015/article/details/50962989 : 1. LeetCode的题库越来越大,没有时间也没有必要把所有题目都做一遍。刷个100题左右应该就差不多了(可以考虑序号为前100多的题目,相对更经典一点)。 2. 从AC率高的开始做,难度从简单->中等。 3. 可以按照下文的面试出题频率顺序来做,从频率最高的一批开始。 4. 尽量不使用IDE,直接在平台上写代码。 5. 不要看标签。标签相当于问题的分类,看了标签就会往那个方向去想,不利于自主思考。 6. 写好代码先不要提交,人工检查一下代码,比如分号是否都有写,return有没少等等。 7. 人工检查完后使用“Custom Testcase”功能自定义测试用例,注意检查边界,然后“Run Code”,这步可以发现蛮多问题的。 8. 等RunCode通过后,再去提交。 刷题顺序: 出现频度为5: 1. Leet Code OJ 1. Two Sum [Difficulty: Easy] 2. Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy] 3. Leet Code OJ 15. 3Sum [Difficulty: Medium]

GALAXY OJ NOIP2019联合测试1-总结

谁说我不能喝 提交于 2019-11-29 09:47:10
 概要     本次比赛考的不是很好,400分的题只拿了180分。。。( 失误失误 )  题目     T1:数你太美(预期100  实际60)          题目大意:           在两个序列中找两个最小的数进行组合,使这个最小整数最小。         解析:           只要根据题目模拟就可以了。。。。。。。            (玄学60分!!!)         code :             60分代码              1 #include<iostream> 2 using namespace std; 3 4 int n,m; 5 int a[100000]; 6 int b[100000]; 7 int main() 8 { 9 cin>>n>>m; 10 int minn=2e9,minm=2e9; 11 for(int i=1;i<=n;i++) 12 { 13 cin>>a[i]; 14 if(minn>a[i]) 15 { 16 minn=a[i]; 17 } 18 } 19 for(int j=1;j<=m;j++) 20 { 21 cin>>b[j]; 22 if(minm>b[j]) 23 { 24 minm=b[j]; 25 } 26 } 27 if(minn==minm) 28 { 29 cout<<minn

Comet OJ - Contest #10 和 EOJ Monthly 2019.9 的几道题

断了今生、忘了曾经 提交于 2019-11-29 08:32:53
Comet OJ - Contest #10 A  鱼目混珠 substr直接取后几位连续子串 #include <set> #include <map> #include <cmath> #include <queue> #include <vector> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ll long long using namespace std; int main() { int t,ans=0; string s; scanf("%d",&t); while(t--) { cin>>s; int len=s.size(); if(len<5) continue; else { if(s.substr(len-5)=="acpty") ans++; } } printf("%d\n",ans); return 0; } B  沉鱼落雁 题的本质是插数字模拟,可以分成有出现3次的情况,没有出现3次的情况,没有出现3次的情况还可以分成出现2次和没出现2次的情况,没有出现2次中只要数出现1次的情况即可。 由于数的范围是1e9,用桶排计数感觉会超时,然后就用了离散化,将范围降到了1e5。 #include <set> #include