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平台提交的方式与基本套路相关推荐

  1. Java的HttpClient类以POST方式提交数据,目标端收到后中文乱码

     h ttpClient HttpMethod NameValuePair setRequestBody 今天开发时,遇到利用Java中HttpClient类以POST方式提交数据,目标收到后中文 ...

  2. OJ平台常用数据读取方式

    OJ平台常用数据读取方式 1.C格式 读取判断: scanf函数返回值: 1.大于0时,表示正确接收的参数个数. 2.等于0时,表示输入不匹配,无法正确输入任何值. 3.等于-1时,表示EOF(end ...

  3. JavaWeb项目——基于Servlet实现的在线OJ平台 (项目问答+代码详解)

    文章目录 项目演示 预先知识 请问 在处理用户同时提交代码时是 多进程处理还是 多线程处理? 你是如何创建多进程的逻辑的 如何获取到编译与运行后的结果? 编译运行模块 子进程之间如何并发? 文件读写操 ...

  4. oj在计算机领域中指什么,【计算机专业论文】计算机专业教学中OJ平台的应用(共2762字)...

    摘要:传统的教学模式对计算机专业学生的能力培养存在着诸多问题,而OJ(OnlineJudge在线检测程序源代码)平台为计算机教学提供了新的思路,因为OJ平台在学生日常训练方面有一套行之有效的机制,所以 ...

  5. Jakarta EE:云原生Java的新平台

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ 在今年的JAX大会上,Eclipse基金会的执行董事Mike Milinkovich专门介绍 ...

  6. form表单提交数据编码方式和tomcat接受数据解码方式

    2019独角兽企业重金招聘Python工程师标准>>> 简单介绍乱码和http请求 1)  乱码问题是web开发过程中经常遇到的问题,主要原因就是URL中使用了非ASCII码造成服务 ...

  7. Java电商平台-电商订单系统全解析

    说明:Java电商平台-电商订单系统全解析主要讲解OMS的内容,设计,开发,架构等知识 今天分享将会分为以下三个环节来阐述: 1.订单系统的介绍 2.订单系统的解构 3.垂直电商订单系统设计思路 一. ...

  8. java微信开发平台_Java微信公众平台开发(1) 接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 通 ...

  9. Java微信公众平台开发(一)--接入微信公众平台

    转载自崔用志博客:http://www.cuiyongzhi.com/ 前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我 ...

最新文章

  1. .NetCore~框架版本号不同引起dotnet不能run它
  2. 矩阵分析与多元统计12 0-1矩阵 交换矩阵简介
  3. python装饰器常见问题_关于python装饰器的问题
  4. 支持向量机的近邻理解:图像二分类为例(2)
  5. 异步发电机 matlab仿真,基于MATLABSIMULINK异步电机矢量控制系统的仿真.pdf
  6. 今天心情好,发首我喜欢的歌---天黑黑
  7. 第一次使用博客及Coursera课程体验
  8. 多进程服务器中,epoll的创建应该在创建子进程之后
  9. 优秀的项目经理都会用这60个项目管理工具模板,可直接编辑套用
  10. 淘宝/天猫添加收货地址 API
  11. 三层交换机光模块故障排除流程
  12. [开发浏览器实战]关于Firefox火狐浏览器的说明一二(国内版 国际版区别 账号切换 插件-恢复关闭的标签页 插件-tempermonkey油猴)
  13. 制作仅在xy方向有周期性的夹层结构,且不使用约束平板
  14. 游戏设计模式阅读笔记19——优化模式(空间分区)
  15. tensorflow 学习笔记使用CNN做英文文本分类任务
  16. 用sdk画三叶玫瑰曲线
  17. [Swift]LeetCode832. 翻转图像 | Flipping an Image
  18. 深入浅出CenterFusion
  19. VGG人脸识别训练心得
  20. 柏楚电子2023校招启动

热门文章

  1. 计算机进化量子攻略,《超进化物语》量子巨龙怎么打 量子巨龙打发解析
  2. Android - 最基础的控件TextView
  3. 困扰:微信开发 安卓和IOS下 对JSON格式解析 导致苹果手机sinature签名无效的问题
  4. 谈一谈交通大脑——智慧城市背后的王牌!
  5. 常用的JS日期格式化方法
  6. 蓝桥练习题(C++)——门派制作
  7. scrapy抓企查查数据
  8. office 转换html,word转html
  9. 视频号放到微信一级流量入口?
  10. dataTables使用