Recherche de bits complète avec Go

Défi Donuts Procon B - 7e sœurs de Tokyo https://atcoder.jp/contests/donuts-2015/tasks/donuts_2015_2

package main
import(
  "fmt"
  "bufio"
  "os"
  "strconv"
  "strings"
  "go/types"
  "go/token"
)
var rdr=bufio.NewReaderSize(os.Stdin,10000000)
func readLine()string{
  l,_,_:=rdr.ReadLine()
  return string(l)
}
func readInts()[]int{
  s:=strings.Split(readLine()," ")
  res:=[]int{}
  for i:=0;i<len(s);i++{
    i,_:=strconv.Atoi(s[i])
    res=append(res,i)
  }
  return res
}
func chmax(x,y int)int{if x>=y{return x}else{return y}}
func contains(x int,sl []int)bool{
  res:=false
  for i:=0;i<len(sl);i++{
    if sl[i]==x{
      res=true
      break
    }
  }
  return res
}
func main(){
  tmp:=readInts()
  n,m:=tmp[0],tmp[1]
  A:=readInts()
  B:=[]int{}
  I:=[][]int{}
  for i:=0;i<m;i++{
    tmp:=readInts()
    B=append(B,tmp[0])
    I=append(I,tmp[2:])
    for j:=0;j<tmp[1];j++{
      I[i][j]--
    }
  }
  //fmt.Println(n,A)
  //fmt.Println(B)
  //fmt.Println(I)
  ans:=0
  for bits:=0;bits<(1<<uint64(n));bits++{
    score:=0
    combo:=[]int{}
    for i:=0;i<n;i++{
      if (bits>>uint64(i))&1==1{
        score+=A[i] //Le score de la personne
        combo=append(combo,i)
      }
    }
    if len(combo)>9{
      continue
    }
    cnt:=0
    //bonus:=0
    for i:=0;i<m;i++{
      cnt=0
      for j:=0;j<len(combo);j++{
        if contains(combo[j],I[i]){
          cnt++
        }
      }
      if cnt>=3{
        score+=B[i]
        //bonus+=B[i]
      }
    }
    //if score==6100{fmt.Println("score",score,"combo",combo,"cnt",cnt,"B[i]",bonus)}
    ans=chmax(ans,score)
  }
  fmt.Println(ans)
}

Recommended Posts

Recherche de bits complète avec Go
Recherche de bits complète avec Python
recherche complète de bits python
Confirmer la recherche de bits complète
Recherche complète simplifiée (facile à régler)
Python avec Go
peu de recherche complète et ensemble de produits direct
Bonjour tout le monde avec toutes les fonctionnalités du langage Go
Recherche séquentielle avec Python
Dichotomie avec python
Dichotomie avec Python 3
Rechercher une base de données avec db.py
Résoudre avec Python [100 questions passées sélectionnées que les débutants et les intermédiaires devraient résoudre] (010 --014 Recherche complète: Recherche complète de bits)
Dessinez la courbe de Bézier avec Go
Faire fonctionner le conteneur Db2 avec Go
Premiers pas avec Go Assembly
Créer / rechercher / créer une table avec PynamoDB
Connectez-vous à Postgresql avec GO
Essayez d'implémenter le parfum avec Go
Je ne peux pas effectuer de recherche avec # google-map. ..
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
Rationalisez la recherche Web avec Python
Je souhaite rechercher le texte intégral avec elasticsearch + python
Apprentissage par ABC173C (recherche complète de bits, copie de liste multidimensionnelle, une dimension de liste multidimensionnelle)
Résolvez les problèmes de somme partielle avec une recherche complète en Python
Recherche en grille d'hyper paramètres avec Scikit-learn
Allez voir les baleines avec l'optimisation des combinaisons
Conseils pour exécuter Go avec Docker
OSMnx pour la première fois ~ Avec la recherche d'itinéraire la plus courte ~
Construire mlpy avec python3.3 (64 bits) (Windows 64 bits)
Recherche de mots composés à phase identique avec opencv
Utiliser la bibliothèque curl / jq avec Go
Client de recherche Twitter fait avec bouteille
À propos de la recherche peu complète qui apparaît souvent chez les professionnels de la concurrence Aux yeux des débutants avec python
Exploitez l'espace de noms réseau Linux avec Go
Résolution avec Ruby et Python AtCoder ABC057 C Décomposition du facteur premier Recherche complète de bits