Java在OJ平台提交的方式与基本套路
Java在OJ平台提交的方式与基本套路
第一次用Java提交Oj题目,发现比C++麻烦不少,C++ 写完放在OJ上大多数都能够直接跑,但Java甚至出现了编译错误这种情况,因此,需要对自己的程序做不少的修改。
比如说,个人第一次提交的https://vjudge.net/problem/HihoCoder-1268九宫问题。
本来程序是这个样子的
package ninth_palace;
import java.util.Scanner;
public class ninth_palace {int MAX_N = 10;int graph[] = new int[MAX_N+1];int vis[] = new int[MAX_N];int ans[] = new int[MAX_N];int flag = 0;public static void main(String[] args) {ninth_palace ninth=new ninth_palace();Scanner sc=new Scanner(System.in);for(int i=0;i<ninth.vis.length;i++){ninth.vis[i]=0;}for(int i=1;i<10;i++){ninth.graph[i]=sc.nextInt();ninth.vis[ninth.graph[i]]=1;}ninth.dfs(1);if(ninth.flag==1){for(int i=1;i<10;i++){System.out.print(ninth.ans[i]);if(i%3==0) System.out.print("\n");else System.out.print(" ");}}else if(ninth.flag>1){System.out.println("Too Many");}}boolean isok() {int sum = graph[1] + graph[2] + graph[3];for (int i = 4; i <= 9; i += 3) {if (graph[i] + graph[i + 1] + graph[i + 2] != sum)return false;}for (int i = 1; i <= 3; i++) {if (graph[i] + graph[i + 3] + graph[i + 6] != sum)return false;}if ((graph[1] + graph[5] + graph[9] != sum) | (graph[3] + graph[5] + graph[7] != sum))return false;return true;}void dfs(int pos){if(pos==10&&isok()){flag++;if(flag==1)ans=graph.clone();return;}if(graph[pos]!=0)dfs(pos+1);else{for(int i=1;i<=9;i++){if(vis[i]!=0)continue;vis[i]=1;graph[pos]=i;dfs(pos+1);vis[i]=0;graph[pos]=0;}}}
}
在OJ上编译不通过,硬是被改成了这个样子
import java.util.Scanner;
public class Main {class Ninth_palace{int MAX_N = 10;int graph[] = new int[MAX_N+1];int vis[] = new int[MAX_N];int ans[] = new int[MAX_N];int flag = 0;boolean isok() {int sum = graph[1] + graph[2] + graph[3];for (int i = 4; i <= 9; i += 3) {if (graph[i] + graph[i + 1] + graph[i + 2] != sum)return false;}for (int i = 1; i <= 3; i++) {if (graph[i] + graph[i + 3] + graph[i + 6] != sum)return false;}if ((graph[1] + graph[5] + graph[9] != sum) | (graph[3] + graph[5] + graph[7] != sum))return false;return true;}void dfs(int pos){if(pos==10&&isok()){flag++;if(flag==1)ans=graph.clone();return;}if(graph[pos]!=0)dfs(pos+1);else{for(int i=1;i<=9;i++){if(vis[i]!=0)continue;vis[i]=1;graph[pos]=i;dfs(pos+1);vis[i]=0;graph[pos]=0;}}}}public static void main(String[] args) {Main.Ninth_palace ninth=new Main().new Ninth_palace();Scanner sc=new Scanner(System.in);for(int i=0;i<ninth.vis.length;i++){ninth.vis[i]=0;}for(int i=1;i<10;i++){ninth.graph[i]=sc.nextInt();ninth.vis[ninth.graph[i]]=1;}ninth.dfs(1);if(ninth.flag==1){for(int i=1;i<10;i++){System.out.print(ninth.ans[i]);if(i%3==0) System.out.print("\n");else System.out.print(" ");}}else if(ninth.flag>1){System.out.println("Too Many");}}
}
还又声明了内部类,也是醉了。
关于内部类的初始化 https://blog.csdn.net/songdexv/article/details/6758972
总而言之:
提交OJ时要注意:
你提交的所有程序都应该以如下形式出现
public class Main{public static void main(String[] args){//其他代码}
}
即,代码中必须存在一个public class Main
。不允许出现其他的public class
。
其他的坑还没遇到不可解决的,推荐如下博文,可作参考:
https://blog.csdn.net/bat67/article/details/79685997
Java在OJ平台提交的方式与基本套路相关推荐
- Java的HttpClient类以POST方式提交数据,目标端收到后中文乱码
h ttpClient HttpMethod NameValuePair setRequestBody 今天开发时,遇到利用Java中HttpClient类以POST方式提交数据,目标收到后中文 ...
- OJ平台常用数据读取方式
OJ平台常用数据读取方式 1.C格式 读取判断: scanf函数返回值: 1.大于0时,表示正确接收的参数个数. 2.等于0时,表示输入不匹配,无法正确输入任何值. 3.等于-1时,表示EOF(end ...
- JavaWeb项目——基于Servlet实现的在线OJ平台 (项目问答+代码详解)
文章目录 项目演示 预先知识 请问 在处理用户同时提交代码时是 多进程处理还是 多线程处理? 你是如何创建多进程的逻辑的 如何获取到编译与运行后的结果? 编译运行模块 子进程之间如何并发? 文件读写操 ...
- oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)...
摘要:传统的教学模式对计算机专业学生的能力培养存在着诸多问题,而OJ(OnlineJudge在线检测程序源代码)平台为计算机教学提供了新的思路,因为OJ平台在学生日常训练方面有一套行之有效的机制,所以 ...
- Jakarta EE:云原生Java的新平台
\ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ 在今年的JAX大会上,Eclipse基金会的执行董事Mike Milinkovich专门介绍 ...
- form表单提交数据编码方式和tomcat接受数据解码方式
2019独角兽企业重金招聘Python工程师标准>>> 简单介绍乱码和http请求 1) 乱码问题是web开发过程中经常遇到的问题,主要原因就是URL中使用了非ASCII码造成服务 ...
- Java电商平台-电商订单系统全解析
说明:Java电商平台-电商订单系统全解析主要讲解OMS的内容,设计,开发,架构等知识 今天分享将会分为以下三个环节来阐述: 1.订单系统的介绍 2.订单系统的解构 3.垂直电商订单系统设计思路 一. ...
- java微信开发平台_Java微信公众平台开发(1) 接入微信公众平台
前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 通 ...
- Java微信公众平台开发(一)--接入微信公众平台
转载自崔用志博客:http://www.cuiyongzhi.com/ 前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我 ...
最新文章
- .NetCore~框架版本号不同引起dotnet不能run它
- 矩阵分析与多元统计12 0-1矩阵 交换矩阵简介
- python装饰器常见问题_关于python装饰器的问题
- 支持向量机的近邻理解:图像二分类为例(2)
- 异步发电机 matlab仿真,基于MATLABSIMULINK异步电机矢量控制系统的仿真.pdf
- 今天心情好,发首我喜欢的歌---天黑黑
- 第一次使用博客及Coursera课程体验
- 多进程服务器中,epoll的创建应该在创建子进程之后
- 优秀的项目经理都会用这60个项目管理工具模板,可直接编辑套用
- 淘宝/天猫添加收货地址 API
- 三层交换机光模块故障排除流程
- [开发浏览器实战]关于Firefox火狐浏览器的说明一二(国内版 国际版区别 账号切换 插件-恢复关闭的标签页 插件-tempermonkey油猴)
- 制作仅在xy方向有周期性的夹层结构,且不使用约束平板
- 游戏设计模式阅读笔记19——优化模式(空间分区)
- tensorflow 学习笔记使用CNN做英文文本分类任务
- 用sdk画三叶玫瑰曲线
- [Swift]LeetCode832. 翻转图像 | Flipping an Image
- 深入浅出CenterFusion
- VGG人脸识别训练心得
- 柏楚电子2023校招启动