java实例--海盗的最优方案
package unit4;
public class Pirate{
private String name;
private int[] schemes;
private int index;
public Pirate(int t,int i) {
name="unknow";
index=i;
schemes=makeSchemes(t);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex(){return index;}
public int[] getSchemes() {return schemes;}
public int handvote(int table[]) {
return myhandvote(table,index);
}
private int myhandvote(int []t,int i) {
if(t[i]==0) return 0;
if(i==1) return 0;
return 1;
}
public int[] makeSchemes(int t) {
int vote=0;
schemes =new int[t-index];
do{
for(int i=0;i<schemes.length;i++){
schemes[i]=(i+1)%2;
}
for(int i=0;i<schemes.length;i++){
vote=vote+myhandvote(schemes,i);
}
}while(!(2*vote>t/2));
return schemes;
}
}
package unit4;
public class Judger {
int[] allot;
Pirate[] pirates;
public Judger(Pirate []pirates,int[]a) {
this.pirates=pirates;
allot=a;
}
public int[] getAllot() {
return allot;
}
public void setAllot(int[] allot) {
this.allot = allot;
}
public Pirate[] getPirates() {
return pirates;
}
public void setPirates(Pirate[] pirates) {
this.pirates = pirates;
}
public boolean evaluate(){
int vote=0;
for(int i=0;i<pirates.length;i++){
vote+=pirates[i].handvote(allot);
}
if(2*vote>=pirates.length) return true;
else return false;
}
}
package unit4;
public class MaxInterest {
public static void main(String[] args) {
int piratecounts=5;
Pirate[]pirates=new Pirate[piratecounts];
for(int i=0;i<piratecounts;i++){
pirates[i]=new Pirate(piratecounts,i);
pirates[i].setName("name"+i);
}
int[]table =pirates[0].getSchemes();
Judger ajudge=new Judger(pirates,table);
if(ajudge.evaluate()){
int[]scheme=ajudge.getAllot();
for(int i=0;i<scheme.length;i++) System.out.println(" "+scheme[i]);
}
}
}
java实例--海盗的最优方案的更多相关文章
- [java] JVM监控与调优
原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...
- Atitti.java android反编译解决方案-----虚拟机方案
Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...
- 数据分表Mybatis Plus动态表名最优方案的探索
一.应用场景 大家在使用Mybatis进行开发的时候,经常会遇到一种情况:按照月份month将数据放在不同的表里面,查询数据的时候需要跟不同的月份month去查询不同的表. 但是我们都知道,Mybat ...
- Thrift入门及Java实例演示<转载备用>
Thrift入门及Java实例演示 作者: Michael 日期: 年 月 日 •概述 •下载配置 •基本概念 .数据类型 .服务端编码基本步骤 .客户端编码基本步骤 .数据传输协议 •实例演示(ja ...
- Protocol Buffer技术详解(Java实例)
Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发 ...
- linux内存基础知识和相关调优方案
内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...
- Java高并发的常见应对方案
Java高并发的常见应对方案 一.关于并发我们说的高并发是什么? 在互联网时代,高并发,通常是指,在某个时间点,有很多个访问同时到来. 高并发,通常关心的系统指标与业务指标? QPS:每秒钟查询量,广 ...
- JAVA实例
JAVA实例1 1 package Demo3; import java.io.File; import java.io.FileReader; import java.io.IOExceptio ...
- Java 实例 - 如何执行指定class文件目录(classpath) Java 实例 J
Java 实例 - 如何执行指定class文件目录(classpath) Java 实例 如果我们 Java 编译后的class文件不在当前目录,我们可以使用 -classpath 来指定class ...
随机推荐
- 通用js类库
/* 其它通用函数 */$(function() { // var General = function() { var _self = this; /* 写 cookie 操作 */ _self.S ...
- Minimum Inversion Number
Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- cocos2dx新研发的游戏,手机运行时非常热的解决方案
cocos2dx新研发的游戏,手机运行时非常热,有需要的朋友可以参考下. cocos2dx新研发的游戏,手机上运行时导致手机非常热,后来听其他项目组分享时得知,可以通过降帧解决这个问题,原来是coco ...
- Eleven scrum meeting 2015/11/5
今日工作情况 小组成员 今日完成的工作 明日待做任务 唐彬 选课和退课模块 测试 赖彦谕 病情较重,请假 病情较重,请假 金哉仁 设计app logo 测试 闫昊 调整课程简介的展示效果 整合各个模块 ...
- [Effective JavaScript 笔记]第58条:区分数组对象和类数组对象
示例 设想有两个不同类的API.第一个是位向量:有序的位集合 var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bi ...
- Autolayout及VFL经验分享
http://www.cocoachina.com/industry/20131108/7322.html 这篇不是什么教程.Cocoa autolayout出来蛮久了.以前多次想去深入研究一下,每次 ...
- 在CI中集成phpmailer,方便使用SMTP发送邮件
直接使用phpmailer的话,有时候不是很方便,特别你的很多功能都是基于CI完成的时候,要相互依赖就不方便了,所以在想,那是否可以将phpmailer集成到CI中呢,像使用email类这样使用他,功 ...
- jqGrid 各种参数 详解
JQGrid JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做什么事情. 下面 ...
- Remove Duplicates from Sorted List | & ||
Remove Duplicates from Sorted List I Given a sorted linked list, delete all duplicates such that eac ...
- jQuery基础 - 改变CSS样式
jQuery提供css()的方法来实现嵌入式改变元素样式,css()方法在使用上具有多样性.其中一种接受两个输入参数:样式属性和样式值,它们之间用逗号分开.比如我们要改变链接颜色,我们可以使用下面的代 ...