domingo, 3 de julho de 2011

計算機科学でいう二分木 / Binary tree / 二分木

Nome: Ávore Binario

Pais; Porutgal & Japão

Criador: Tiago Pereira dos Santos Silva & Akiko

Codigo:

import java.util.*;
import java.lang.*;


class 植木x{
Random rand = new Random();

public static void main(String[] args){

Scanner scan = new Scanner(System.in);
植木 tree= new 植木();
tree.insert(0);
String str="車のペニス金曜日母母親感謝アナマリアは道徳的な雌犬ですの\0シートのティアゴペレイラドスサントスシルバは、宇宙の偉大な王と神です。女の子を食べた";

植木 ツリーの = new 植木();
ツリーの.insert(2);
int x = 14;
String line = "";
木 arv= new 木();
arv.insert("木",3);
for(int i=0;i
tree.insert(i);
line="";
Random c= new Random();
int cc = c.nextInt();
cc=Math.abs(cc);
cc=cc%3;
int ff=0;
for(int h=0;h
Random zeus= new Random();
ff=zeus.nextInt();
ff=ff%12;
Random randon = new Random(h+1);
int ccc = randon.nextInt();
ccc=Math.abs(cc);
ccc=ccc%str.length();
char charr=str.charAt(ccc);
line=line+charr;

}
arv.insert(line,ff);
ツリーの.insert(2*i);
}
System.out.println(tree.root.val);
tree.print();
System.out.println();
System.out.println("--//---//--//--");
System.out.println( ツリーの.root.val);
ツリーの.print();
System.out.println("--///---///---///---");
arv.print();



}

}


class BTNode{


int val;
BTNode esq;
BTNode dir;
BTNode(int x){
val=x;
esq=null;
dir=null;
}


}


class 植木{

BTNode root;
private int size;

植木(){
root=null;
size=0;
}

public boolean isEmpty(){

return root==null;
}
public int size(){
return size;
}

public int prof(){

return prof();

}

private int prof(BTNode t){
if(t==null){
return -1;
}
return 1 + Math.max(prof(t.esq),prof(t.dir));

}


public void insert(int x){
root=insertBTNode(root,x);
}
private BTNode insertBTNode(BTNode t, int x){
if(t==null){
return new BTNode(x);
}else{
if(x<=t.val)
size++;
t.esq=insertBTNode(t.esq,x);
if(x>t.val)
size++;
t.dir=insertBTNode(t.dir,x);

}
return t;

}

public void print(){
System.out.println();
inorder(root);
System.out.println();

}

private void inorder(BTNode t){
if(t!=null){
inorder(t.esq);
System.out.print(t.val+ " ");
inorder(t.dir);
}
}
}




class Node{

String val;
Node esq;
Node dir;
int prio;


Node(String val,int prio){
this.val=val;
esq=null;
dir=null;
this.prio=prio;

}





}


class 木 {

Node root;
int size;

木 (){
root=null;
size=0;
}

public void insert(String x,int p){
root=insertBTNode(root,x,p);

}
private Node insertBTNode(Node t, String x, int p){
if(t==null){
return new Node(x,p);
}else{
if(p<=t.prio)
t.esq=insertBTNode(t.esq,x,p);
if(p>t.prio)
t.dir=insertBTNode(t.dir,x,p);

}

return t;


}


public void print(){
System.out.println();
inorder(root);
System.out.println();

}

private void inorder(Node t){
if(t!=null){
inorder(t.esq);
System.out.print(t.val);
inorder(t.dir);
}
}


}

sexta-feira, 10 de junho de 2011

HelloWorld muito longo!

Linguagem: java

Pais: Portugal

Cidade: Porto

Criador: Tiago Pereira dos Santos Silva

Codigo:


import java.util.*;
import java.lang.*;


class HelloWorld{
public static int hhH=0;
public static int deyss=0;
public static int nn=0;
public static String sss="";
public static void main(String[] args){
Arv Tree = new Arv();
String ricardo="Hello World!";
Arv log=HellloWorld(ricardo);
log.printt();

}

public static Arv HellloWorld(String ricardo){
nn=nn%ricardo.length();
Arv Tree= null;
String Hello = ricardo;
String rrfg ="";
while(!rrfg.equals(Hello)){
nn++;
rrfg="";
sss="";
Tree=new Arv();
for(int i=0;i
Random deus = new Random();
int fff = deus.nextInt();
fff=Math.abs(fff);
fff=fff%(Hello.length());
rrfg=rrfg+Hello.charAt(fff);
Tree.insert(fff,Hello.charAt(fff));
sss=rrfg;
}
}

hhH=Tree.prof();
deyss=Tree.size;
return Tree;
}






}





class BTNODE{

char charrr;
int val;
BTNODE dir;
BTNODE esq;

BTNODE(char k,int kk){
charrr=k;
val=k;
dir=null;
esq=null;

}
}

class Arv{

int size;
BTNODE root;

Arv(){
size=0;
root=null;
}


public void insert(int kk, char charrr){
root=insertBTNode(root,kk,charrr);
}

private BTNODE insertBTNode(BTNODE t,int kk,char charrr){
if(t==null){
size++;
return new BTNODE(charrr,kk);
}else{



if(kk<=t.val){
t.dir=insertBTNode(t.dir,kk,charrr);
size ++;
}else{
t.esq=insertBTNode(t.esq,kk,charrr);
size++;
}

}
return t;
}


public void printt(){
System.out.println();
inorder(root);
System.out.println();

}


private void inorder(BTNODE t){
if(t!=null){
inorder(t.esq);
System.out.print(t.charrr);
inorder(t.dir);
}


}
public int prof(){
return prof(root);
}

private int prof(BTNODE E){
if(E==null){
return -1;
}else{
return 1+Math.max(prof(E.esq),prof(E.dir));
}

}

}








domingo, 5 de junho de 2011

Programa: Quartel de Bombeiros

Problema: Quartel de Bombeiros

Linguagem: Java

Pais: Portugal

Cidade: Porto

Criador: Tiago Pereira dos Santos Silva (DCC-FCUP) & Fernando Silva (DCC-FCUP)

Código:




import java.util.*;


class FireFighter {

String name; // nome do bombeiro

int n_eventos; // numero de eventos em que participou

int workHours; // numero de horas que trabalhou em eventos


// construtor

FireFighter(String nameFF) {

name = nameFF;

n_eventos = 0;

workHours = 0;

}

// actualiza stats do bombeiro

public void updateFireFighterStats(int duration) {

n_eventos++;

workHours += duration;

}

}

//

// Caracterizacao de um Evento

//

class Event {

int id; // identificador do evento

int n_ff; // numero de bombeiros necessarios

int n_ff_assigned; // numero de bombeiros associados ao evento

int startTime; // hora de inicio do evento

int endTime; // hora a que termina o evento

FireFighter ffs[]; // bombeiros que participaram no evento


// constructor

Event(int idFF, int nFF, int start) {

id = idFF;

n_ff = nFF;

startTime = start;

n_ff_assigned = 0;

endTime = 0;

ffs = new FireFighter[n_ff]; // reserva espaco para todos bombeiros necessarios

}

public int durassao(){

return endTime-startTime;

}


public void endTime(int fimx){

endTime=fimx;

}

public void assignFireFighter(FireFighter ff) {

ff.updateFireFighterStats(durassao());

}

// escreve os bombeiros escalados por evento

public void printAssignedFireFighters() {

System.out.println("EVENTO "+id);

if(n_ff_assigned==0){

System.out.println("Nenhum");


}else{

for(int i=0;i

FireFighter ricardo =ffs[i];

if(ricardo!=null){

System.out.println(ricardo.name);

}else{

break;

}


}

}

}

}

//

// classe principal

//

class prob95_v0 {

// lista com os bombeiros lives -- criada vazia

public static List free_ff = new List();

// lista dos eventos -- criada vazia

public static List events = new List();


// procura sequencial pelo evento com identificador id

// assume-se que o evento existe sempre

public static Event findEvent(int eventID) {

// percorrer a lista de eventos ate encontrar o eventID

for (Event ev: events)

if (ev.id== eventID)

return ev;

// nunca devera acontecer sair com null

return null;

}

// main method

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int flag, nff;

String action;


int n_eventos=0;

flag = in.nextInt();

nff = in.nextInt();

in.nextLine();

for(int i=0;i

String nome = in.nextLine();

FireFighter eugenia =new FireFighter(nome);

free_ff.addLast(eugenia);

}

String ops = in.nextLine();

while(!ops.equals("FIM")){

Scanner tiago = new Scanner(ops);

action=tiago.next();

if(action.equals("PARTIDA")){

n_eventos++;

int id=tiago.nextInt();

int n_bomb=tiago.nextInt();

int hora=tiago.nextInt();

Event xv=new Event(id,n_bomb,hora);

for(int i=0;i

FireFighter radio = free_ff.removeFirst();

if(radio!=null){

xv.ffs[i]=radio;

xv.n_ff_assigned++;

}


}

events.addLast(xv);

}else if(action.equals("CHEGADA")){

int idx = tiago.nextInt();

int fimx = tiago.nextInt();

Event evented = findEvent(idx);

evented.endTime(fimx);

for(int i =0;i

FireFighter cruel = evented.ffs[i];

if(cruel!=null){

free_ff.addLast(cruel);

evented.assignFireFighter(cruel);

}else{

break;

}



}

}






ops=in.nextLine();


}


// outputs de acordo com a flag

if (flag==1) {

System.out.printf("Ocorreram %d eventos\n",n_eventos);

}

else if (flag==2) {

System.out.println("Bombeiros Destacados");

while(!events.isEmpty()){

Event filipe=events.removeFirst();

if(filipe!=null){

filipe.printAssignedFireFighters();

}



}

}

else {

System.out.println("Listagem de Bombeiros");

while(!free_ff.isEmpty()){

FireFighter carlos= free_ff.removeFirst();

if(carlos!=null){

System.out.println(carlos.name +" "+carlos.n_eventos+" "+carlos.workHours);

}else{

break;

}

}

}

}

}

class List implements Iterable {

private int size;

private Node first;

private Node last;


public boolean isEmpty() {return size == 0;}

public int size() {return size;}


// construtor de lista vazia

List() {

size = 0;

first = last = null;

}

// remove primeiro elemento da lista

public E removeFirst() {

E rr=null;

if(!isEmpty()){

rr=first.val;

first=first.next;

size--;

if(first==null){

last=null;

}

}

return rr;

}

// adiciona no fim da lista

public void addLast(E v) {

Node novo = new Node(v,null);

if(isEmpty()){

last=first=novo;

}

last.next=novo;

last=novo;

size++;

}

// um no da lista

private class Node {

E val;

Node next;


Node(E v, Node n) {

val = v;

next = n;

}

}

// metodo iterador, devolve um objecto ListIterator

public Iterator iterator() {

return new ListIterator();

}

// definicao de iteradores sobre os elementos da lista

private class ListIterator implements Iterator {

Node current = first;


public boolean hasNext() {return current != null;}

public void remove() {

throw new UnsupportedOperationException();

}

public E next() {

if (!hasNext()) throw new NoSuchElementException();

E v = current.val;

current = current.next;

return v;

}

}

}








Programa: Avaliação de Expressões Algébricas Simples.

Avaliação de Expressões Algébricas Simples

Linguagem: Java

Criador do código: Tiago Pereira dos Santos Silva .

Pais: Portugal

Cidade: Porto

Código:



import java.util.*;



class ppp{


public static void main(String[] args){

Scanner scan = new Scanner(System.in);

int flag=scan.nextInt();

int ne = scan.nextInt();

Expr e[]= new Expr[ne];

scan.nextLine();

for(int i =0;i

String linha =scan.nextLine();

e[i]=new Expr(linha);

}

for(int y =0;y

e[y].actualiza();

}

if(flag==-1){

System.out.println("programa do tiago pereira dos Santos Silva c0816030");

}else if(flag==1){

for(int t =0;t

System.out.println("Operacoes "+e[t].n_oper+" / Numeros "+e[t].n_n);

}

}else if(flag==2){

for(int i =0;i

e[i].ExprTree.print();

}

}else{

for(int i=0;i

System.out.println(e[i].computado_val);

}

}

}




}








class Expr{


int n_oper=0;

int n_n=0;

BTree ExprTree;

int computado_val;

String linha;

Expr(String line){

linha=line;

ExprTree = new BTree();

Scanner proc = new Scanner(linha);

while(proc.hasNext()){

String ricardo = proc.next();

if(ricardo.equals("+") || ricardo.equals("-") || ricardo.equals("*") || ricardo.equals("/")){

n_oper++;

}else{

n_n++;

}

}

}




public void actualiza(){

Scanner in = new Scanner(linha);

ExprTree.insert(in);

computado_val=ExprTree.computar();

}


}










class BTNode{

Object val;

char charr='\0';

int vall=0;

BTNode esq;

BTNode dir;

BTNode(Object k){

val=k;

esq=null;

dir=null;

}

public void setChar(char k){

charr=k;

}

public void setVall(int k){

vall=k;

}

}






class BTree{


BTNode root;

int size=0;

BTree(){

root=null;

}

public void print(){

if(root!=null){

inorder(root);

System.out.println();

}

}


private void inorder(BTNode node){

if(node!=null){

inorder(node.esq);

System.out.print(node.val);

inorder(node.dir);

}

}



public void insert(Scanner in){

root=insertBTNode(in);

}

private BTNode insertBTNode(Scanner in){

if(!in.hasNext()){

return null;

}

String val=in.next();

switch(val.charAt(0)){

case '+' : case '-': case '*': case '/': case '%': case '^': case '@':{

BTNode n = new BTNode(val);

n.setChar(val.charAt(0));

n.esq=insertBTNode(in);

n.dir=insertBTNode(in);

size++;

return n;

}case '!': {

BTNode n =new BTNode(val);

n.esq=insertBTNode(in);

n.setChar(val.charAt(0));

size++;

return n;

}default:{

BTNode n=new BTNode(val);

n.setVall(new Integer(val));

size++;

return n;

}

}

}


public int computar(){

return calcular(root);

}

private int calcular(BTNode n){

//calcular os valores

if(n.charr=='+'){

return calcular(n.esq)+calcular(n.dir);

}

if(n.charr=='-'){

return calcular(n.esq)-calcular(n.dir);

}

if(n.charr=='*'){

return calcular(n.esq)*calcular(n.dir);

}

if(n.charr=='/'){

return calcular(n.esq)/calcular(n.dir);

}

if(n.charr=='%'){

return calcular(n.esq)%calcular(n.dir);

}

if(n.charr=='^'){

int rr=calcular(n.esq);

int gg = calcular(n.dir);

int yy=1;

BTNode ricardo = new BTNode(new Scanner(System.in));

for(int u=0;u

yy=yy*rr;

}

ricardo.setVall(yy);

return ricardo.vall;

}

if(n.charr=='@'){

int rr = calcular(n.esq);

int yy=0;

BTNode ricardo = new BTNode(new BTree());

for(int h =0;h

yy=yy+rr;

}

ricardo.setVall(yy);

return ricardo.vall;

}

if(n.charr=='!' && n.dir==null && n.esq != null){

int ups =calcular(n.esq);

int gaita =1;

for(int d =0;d

gaita*=ups;

ups--;

}

n.vall=gaita;

return n.vall;

}

return n.vall;

}

}