Online Judge

蓝桥杯练习-各大OJ平台介绍

左心房为你撑大大i 提交于 2021-01-13 07:39:41
校赛准备的不够充分,简单题失分太遗憾, 有幸参加到省赛,这次先码一下练习平台,等学期结束忙完之后好好练习! 1.题库与网站资源 题库-在线提交系统(Online Judge)简介 下面是几个比较大的在线提交系统(OnlineJudge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。采用黑箱测试,系统里有一套标准的输入输出数据(对外保密,而且通常数据很多很怪),你的程序的输出和标准输出完全符合即可。 常见的返回信息有 AC(Accepted,通过)、WA(Wrong Answer,输出有错误)、TLE(Time LimitExceeded,超时)、MLE(Memory Limit Exceeded,内存溢出)、RE(RuntimeError,发生实时错误)等,只有AC了才算做对一题。这里只是一个简要介绍,请大家在做题时先看看各网站上的FAQ,Enjoy it 北京大学 Online Judge(POJ) <http://acm.pku.edu.cn/JudgeOnline/>建立较晚,但题目加得很快,现在题数和ZOJ不相上下,特点是举行在线比赛比较多,数据比ZOJ上的要弱,有时候同样的题同样的程序,在ZOJ上WA,在POJ上就能AC。不过感觉pku的题目要难很多

伯努利数的应用

无人久伴 提交于 2020-12-19 04:42:24
51nod1228 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1228 #include<cstdio> typedef long long ll; const int maxn=5005,mod=1e9+7; int c[maxn][maxn],b[maxn],inv[maxn]; int T,k,tmp,ans; ll n; int main(){ for(register int i=0;i<=5000;++i){ c[i][0]=1; for(register int j=1;j<=i;++j) c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod; } inv[1]=1; for(register int i=2;i<=5000;++i) inv[i]=mod-1ll*mod/i*inv[mod%i]%mod; b[0]=1; for(register int i=1;i<=5000;++i){ for(register int j=0;j<i;++j) b[i]=(b[i]+1ll*c[i+1][j]*b[j]%mod)%mod; b[i]=(mod-1ll*b[i]*inv[i+1]%mod)%mod; } scanf("%d",&T); while(T--){

有哪些值得推荐的程序员在线编程网站?

喜夏-厌秋 提交于 2020-12-16 07:26:36
经常听到一个段子说: 大部分伟大的想法都死在配环境上面。 我知道对于一个新手来说,可能配运行环境要比上手写代码要难受的多。所以我就抽时间整了一些在线编程测试的网站,虽然推荐了这些网站,但是还是推荐大家平时写代码的时候在本地用IDE写。 这篇文章的意义在于: 工作或者考研的时候,针对特定的算法题在网站上练习; 一台临时电脑,没有编程环境,但是需要运行代码; 突然需要运行一个自己不常用的语言的代码,自己电脑上没有环境; 想要了解其它系统,自己安装很麻烦,用线上的系统练一下手。 下面是正文,欢迎大家补充: 1、牛客网 要说在线编程网站,肯定要提到牛客网,很多大厂的机试都是在牛客网上进行的,找工作之前,可以在上面找到以前的校招真题进行练习,想刷剑指offer、LeetCode的题也可以在上面刷,不会的题有大神在讨论区分享答案,不仅如此,计算机专业的考研/保研机考在牛客网上也能找到。自带的编译器主流的编程语言都支持(见第二个图)。 2、 LeetCode 算法刷题网站肯定绕不开LeetCode,业界一直有句话说把LeetCode上的题都刷烂熟了就可以进谷歌了。不过上面的题都是英语描述,需要一定的英语基础,还需要一定的算法基础。不过好像LeetCode也有一个中国区网站,算法题目都是中文描述的,觉得看英文费劲的同学可把中国区的网站收藏一下:https://leetcode-cn.com

看完谷歌师兄的刷题笔记,多语言通吃,秒杀 88% Leetcode 题目

余生颓废 提交于 2020-12-05 09:59:25
如果你刷 leetcode 觉得吃力,那么一定需要这份谷歌大佬的 leetcode 刷题笔记! 每一道题的题解都写得非常清楚。 曾经我也被刷题效率低的问题所困扰, 直到某天发现了这位谷歌工程师编写的刷题笔记。 他把自己的刷题笔记进行了整理 , 于是这样一本制作精美且免费开源的书籍出现在大家面前。 引用他的话来说: 本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷LeetCode时常用的技巧。我把题目精简到了101道,一是呼应了本书的标题,二是不想让读者阅读和练习时间过长。这么做不太好的一点是,如果只练习这101道题,读者可能对算法和数据结构的掌握不够扎实。因此在每一章节的末尾,我都加上了一些推荐的练习题,并给出了一些解法提示,希望读者在理解每一章节后把练习题也完成。 编码规范良好,适合刷题的同学反复学习,揣摩其中的框架思维。 这是一本非常用心的刷题类书籍,全书总共 262 页,分编程技巧、线性表、字符串、栈队列、树、排序、查找、BFS、DFS、贪心、动态规划等。 可以感受下目录: 一个章节都先讲解框架思维,然后挑选非常典型的十几道LeetCode题进行实战讲解: 这本书包含了 LeetCode Online Judge 所有题目的答案,所有的代码实现都分为 CPP 和 Java 两个版本: 其中代码在: https:// github.com/soulmachine

LGP4518[JSOI2018]绝地反击

﹥>﹥吖頭↗ 提交于 2020-12-04 11:57:57
题解: 只要确定了每艘飞船的就位位置,就可以用二分+网络流求得答案; 定义偏转角度$a$为离$x$正半轴逆时针最近的边的弧度,$a \in [0,\frac{2\pi}{n})$ 二分一个值,对于一个点可以求出可到达的弧度记为$[l,r]$ 那么在$[0,a]$的移动范围内只有可能前面一个点删除,后面一个点加入; 对$O(n)$个关键点做网络流即可; 复杂度$O(n^4 \ logn)$ 如果将关键点排序,每次只考虑变化的边退流可以优化到:$O(n^3 \log n)$ 1 #include<bits/stdc++.h> 2 #define ld double 3 using namespace std; 4 const int N= 610 ,M= 100010 ,inf= 0x3f3f3f3f ; 5 const ld Pi=acos(- 1 ),eps=1e- 9 ; 6 int n,S,T,vis[N],hd[N],o,cur[N],d[N],que[N],head,tail,flow,cnt; 7 ld R,B; 8 struct Edge{ int v,nt,f;}E[M<< 1 ]; 9 struct poi{ld x,y;}p[N]; 10 ld dis(poi A){ return sqrt(A.x*A.x+A.y* A.y);} 11 struct data{

LOJ117 有源汇有上下界最小流(上下界网络流)

好久不见. 提交于 2020-11-22 04:30:56
  跑出可行流后从原来的汇点向原来的源点跑最大流,原图最小流=inf-maxflow。显然超源超汇的相关边对其也没有影响。原图最小流=可行流-原图新增流量,因为t向s流量增加相当于s向t流量减少。但为什么等于inf-maxflow呢?显然最大流会把这条inf边跑满,这样会增加inf-可行流的流量,然后又继续在原图中增加可增加的流量,移项就可以得到这个式子了。 #include<iostream> #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; int read() { int x= 0 ,f= 1 ; char c= getchar(); while (c< ' 0 ' ||c> ' 9 ' ) { if (c== ' - ' ) f=- 1 ;c= getchar();} while (c>= ' 0 ' &&c<= ' 9 ' ) x=(x<< 1 )+(x<< 3 )+(c^ 48 ),c= getchar(); return x* f; } #define N 50010 #define M 500000 #define S 0 #define T 50001 #define inf

[CF1244C] The Football Season【数学,思维题,枚举】

拜拜、爱过 提交于 2020-11-14 07:52:42
Online Judge : Luogu , Codeforces Round #592 (Div. 2) C Label :数学,思维题, 枚举 题目描述 某球队一共打了$n$场比赛,总得分为$p$,已知赢一场得$w$分,平局一场得$d$分,输一场不加分也不减分,问一共赢了几场(x),平局了几场(y),输了几场(z)?如果不存在合法方案输出"-1",如果存在多组可能的方案,任意输出一组(Special Judge)。 也就是任求一组符合条件的非负整数三元组$(x,y,z)$,满足: $$ x\cdot w+y\cdot d=p \ x+y+z=n $$ 输入 四个整数$n,p,w,d$。 输出 输出三个整数表示符合条件的三元组,如果不存在,则输出"-1"。 样例 Input#1 30 60 3 1 Output#1 17 9 4 Input#2 10 51 5 4 Output#2 -1 Input#3 20 0 15 5 Output#3 0 0 20 Hint $1<=n<=10^{12}$,$0<=p<=10^{17}$,$1<=d<w<=10^{5}$。 注意,题目数据保证了$d<w$,也就是赢一场的得分严格大于平局一场的得分。 题解 一开始看题,直接打了个exgcd去解不定方程最小解,结果好像中间会爆long long 就WA掉了。其实仔细读题,根本根本不需要这样搞。

程序员面试题精选100题(51)-顺时针打印矩阵[算法]

China☆狼群 提交于 2020-11-13 10:56:42
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10 。 分析:第一次看到这个题目的时候,觉得这个题目很简单,完全不需要用到数据结构或者算法的知识,因此没有兴趣做这道题。后来听到包括 Autodesk 、 EMC 在内的多家公司在面试或者笔试里采用过这道题,于是想这么多家公司用它来检验一个程序员的编程功底总是有原因的,于是决定自己写一遍试一下。真正写一遍才发现,要完整写出这道题的代码,还真不是件容易的事情。 解决这道题的难度在于代码中会包含很多个循环,而且还有多个边界条件需要判断。如果在把问题考虑得很清楚之前就开始写代码,不可避免地会越写越混乱。因此解决这个问题的关键,在于先要形成清晰的思路,并把复杂的问题分解成若干个简单的问题。下面分享我分析这个问题的过程。 通常当我们遇到一个复杂的问题的时候,我们可以用图形帮助我们思考。 由于我们是以从外圈到内圈的顺序依次打印,我们在矩阵中标注一圈作为我们分析的目标。在下图中,我们设矩阵的宽度为 columns ,而其高度为 rows 。我们我们选取左上角坐标为 (startX, startY)

程序员编程艺术第三十二~三十三章:最小操作数,木块砌墙问题

久未见 提交于 2020-10-24 16:54:34
第三十二~三十三章:最小操作数,木块砌墙问题 作者:July、caopengcs、红色标记。致谢:fuwutu、demo。 时间:二零一三年八月十二日 题记 再过一两月,便又到了每年的九月十月校招高峰期,在此依次推荐: 程序员编程艺术 http://blog.csdn.net/column/details/taopp.html ; 秒杀99%的海量数据处理面试题 http://blog.csdn.net/v_july_v/article/details/7382693 ; 《编程之美》; 微软面试100题系列 http://blog.csdn.net/column/details/ms100.html ; 《剑指offer》 一年半前在学校的那会,我曾经无比疯狂的创作程序员编程艺术这个系列,因为当时我坚信它能帮到更多的人找到更好的工作,此刻今后,我更加无比坚信这点。 同时,相信你也已看到,编程艺术系列的创作原则是把受众定位为一个编程初学者,从看到问题后最先想到的思路开始讲解,一点一点改进,不断优化。 而本文主要讲下述两个问题: 第三十二章:最小操作数问题,主要由caopengcs完成; 第三十三章:木块砌墙问题,主要由红色标记和caopengcs完成。 全文由July统一整理修订完成。OK,还是很真诚的那句话:有任何问题,欢迎读者随时批评指正,感谢。 第三十二章、最小操作数

香港中文大学(深圳)招收访问学生及研究助理(计算机视觉方向)

烈酒焚心 提交于 2020-08-18 07:04:34
香港中文大学(深圳)的深圳市大数据研究院 SRIBD 正在招收访问学生及研究助理,从事医疗图像及计算机视觉方向的研究,表现优秀者有机会被优先录取为香港中文大学(深圳)的博士研究生。有关信息如下: 1) 研究内容包括发表科研论文、或参加有影响力的学术竞赛 2) 导师会一对一地指导每个学生,去完成他们作为第一作者的学术论文 3) 导师会就论文选题、算法设计、实验技巧、编程实现、论文写作等方面提供具体指导,并教授必要的计算机视觉和图像处理的基础知识 4) 导师会根据学生的实际表现撰写推荐信,协助学生后续的升学和就业 5) 研究院会发放充足的补助/薪水,确保覆盖并超过在港中文深圳日常需要的住宿费、伙食费、生活费 6) 研究院提供支持多显卡、大内存、高速读写的计算集群 对访问学生及研究助理要求如下: 1) 访问学生应为在读本科生、在读硕士生或在读博士生,优先考虑在读本科生和在读硕士生 2) 研究助理应已通过本科或以上学位的毕业答辩,可为应届生或往届生,要求全职在岗工作 3) 理科、工科或医科专业背景均可,非计算机专业请在简历中列举完成的与编程、算法、计算机科学、计算机视觉等相关的课程 4) 有编程经验,有深度学习或计算机视觉或医学工程经验优先;若无相关经验,则要求有较好的计算机科学、算法或数学基础,以及较强的学习能力 5) 在编程比赛或者kaggle等数据科学比赛中成绩优秀者加分