太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误

大概思路:先求出让损失值最小的排列,由已生成的这些排列,通过更改某一个位置的值,生成下一个最优解,迭代最多生成m+1个最优解即可,遍历求出没有被禁的最优解即可

#include<iostream>
#include<cstdio>
#include<cmath>
#include<queue>
#include<vector>
#include<string.h>
#include<cstring>
#include<algorithm>
#include<set>
#include<map>
#include<fstream>
#include<cstdlib>
#include<ctime>
#include<list>
#include<climits>
#include<bitset>
using namespace std;
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("input.in", "r", stdin);freopen("output.in", "w", stdout);
#define left asfdasdasdfasdfsdfasfsdfasfdas1
#define tan asfdasdasdfasdfasfdfasfsdfasfdas
typedef long long ll;
typedef unsigned int un;
const int desll[][]={{,},{,-},{,},{-,}};
const ll mod=1e9+;
const int maxn=4e2+;
const int maxm=1e6+;
const double eps=1e-;
int m,n,p;
int ar[maxn];
char c[maxn]; set<pair<int,string> > se;
set<string> seMid; char cha(char c)
{
return c==''?'':'';
}
int main()
{
fopen
int t,fir=;scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&p);
memset(ar,,sizeof(ar));
seMid.clear();
se.clear();
for(int i=;i<n;i++){
scanf("%s",c);
for(int j=;j<p;j++){
if(c[j]=='')ar[j]++;
}
}
for(int i=;i<m;i++){
scanf("%s",c);
seMid.insert(string(c));
}
string str(p,'');
int mid=;
for(int i=;i<p;i++){
if(ar[i]>n/){
str[i]='';
ar[i]=n-ar[i];
}
mid+=ar[i];
}
se.insert(make_pair(mid,string(str)));
int ans=;
while((int)se.size()<=m){
int mn=p*n;
string ss;
for(set<pair<int,string>>::iterator au = se.begin();au!=se.end();au++){
mid = au->first;
string sMid = au->second;
if(mid>mn)break;
for(int i=;i<p;i++){
if(sMid[i]==str[i] && mn>mid+n-*ar[i]){
sMid[i] = cha(sMid[i]);
if(se.count(make_pair(mid+n-*ar[i],sMid))==){
mn=mid+n-*ar[i];
ss=sMid;
}
sMid[i] = cha(sMid[i]);
}
}
}
se.insert(make_pair(mn,ss));
if(seMid.count(ss)==)break;
}
set<pair<int,string>>::iterator au=se.begin();
for(;au!=se.end();au++){
string sMid = au->second;
if(seMid.count(sMid)==){
ans=au->first;
break;
}
}
printf("Case #%d: %d\n",++fir,ans);
}
return ;
}

Google Kickstart Round E 2018 B. Milk Tea的更多相关文章

  1. google Kickstart Round G 2017 三道题题解

    A题:给定A,N,P,计算A的N!次幂对P取模的结果. 数据范围: T次测试,1 ≤ T ≤ 100 1<=A,N,P<=105 快速幂一下就好了.O(nlogn). AC代码: #inc ...

  2. Let Me Count The Ways(Kickstart Round H 2018)

    题目链接:https://code.google.com/codejam/contest/3324486/dashboard#s=p2 题目: 思路: 代码实现如下: #include <set ...

  3. 2019 google kickstart round A

    第一题: n个人,每个人有一个对应的技能值s,现在要从n个人中选出p个人,使得他们的技能值相同. 显然,如果存在p个人的技能值是相同的,输出0就可以了.如果不存在,就要找出p个人,对他们进行训练,治他 ...

  4. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  5. Google Kickstart Round.B C. Diverse Subarray

    这题又是万恶的线段树 maxx[j]存储的是 l = xxx, r = j的时候的答案 我们会让 l 从 1到n 的遍历中,查询线段树的[l, n]中最大的答案 因为query的下界是n,所以单次查询 ...

  6. Kickstart Round H 2018

    打了ks好久都没有更新 诶,自己的粗心真的是没救了,A题大数据都能错 A #include <iostream> #include <cstdio> #include < ...

  7. Kickstart Round G 2018

    第一次打codejam....惨的一比,才A1.5题,感觉自己最近状态渣到姥姥家了,赶紧练练 A 模拟,注意0的问题 #include <iostream> #include <cs ...

  8. Google Kickstart在线测试规则以及注意事项

    谷歌招聘在如火如荼的进行中,进谷歌都需要经过谷歌kickstart在线测试,然后过了之后还有五轮的面试- -.好吧毕竟你待遇高,你强你有理.. 下面介绍一下进谷歌的第一关google kickstar ...

  9. HDU 6667 Roundgod and Milk Tea (思维)

    2019 杭电多校 8 1011 题目链接:HDU 6667 比赛链接:2019 Multi-University Training Contest 8 Problem Description Rou ...

随机推荐

  1. 《Cracking the Coding Interview》——第2章:链表——题目6

    2014-03-18 02:41 题目:给定一个带有环的单链表,找出环的入口节点. 解法1:用hash来检测重复节点肯定是容易想而且效率也高的好办法. 代码: // 2.6 You have a ci ...

  2. 一个初学者的辛酸路程-继续Django

    问题1:HTTP请求过来会先到Django的那个地方? 先到urls.py  ,里面写的是对应关系,1个URL对应1个函数名. 如果发URL请求过来,到达这里,然后帮你去执行指定的函数,函数要做哪些事 ...

  3. sqlserver 列出表字段和字段说明

    --表描述SELECT tbs.name 表名,ds.value 描述 FROM sys.extended_properties dsLEFT JOIN sysobjects tbs ON ds.ma ...

  4. create vm

    #!/bin/sh echo $# [ $# < ] && { echo "error" exit } instance_name=$ instance_ip ...

  5. linux备忘录-bash

    知识点 环境变量 HOME PATH MAIL SHELL RANDOM // 0~32767的随机数 declare -i number=$RANDOM*10/32768 //0-9的随机数 HIS ...

  6. VMware ESXI 5.5 注册码

    VMware ESXI 5.5 注册码 ESXI 注册码0A42V-8M182-3ZZ88-R21N6-32K5H ESXi Server许可证类型产品: Mware vSphere 5 Enterp ...

  7. 淀粉质模板 Tree

    Tree 题目描述 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 输入输出格式 输入格式: N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 ...

  8. JAVA学习资料大全

    最高端的JAVA架构师资源(来自龙果学院 价值¥1399元).JAVA互联网分布式架构(龙果学院 价值¥899元).Spring Boot(2017年最新 包括源码原理分析) + Spring Clo ...

  9. Windows1小时后关机命令

    shutdown -s -t 3600 1.注销当前用户 shutdown - l 该命令只能注销本机用户,对远程计算机不适用. 2.关闭本地计算机 shutdown - s 3.重启本地计算机 sh ...

  10. nginx简易部署

    Nginx (engine x) 可作为web反向代理服务器.能够代理外部网络上的主机,访问内部网络 1 首先windows下载nginx :http://nginx.org/download/ngi ...