2018 ACM ICPC Asia Regional - Seoul B.Cosmetic Survey
参考大佬代码
题目大意
nnn个顾客,mmm种画妆品,每一个顾客会给mmm种化妆品一个值,这个值代表这个化妆品在他心中的排名,排名越小越喜欢,如果这个值为0说明最不喜欢这一种化妆品(值为0理解为无穷大)
现在定义d(x,y)d(x,y)d(x,y)表示第xxx种化妆品和第yyy种化妆品之间,喜欢第xxx种化妆品的人数
定义一个序列C1,C2,C3,…,CkC_1,C_2,C_3,\dots,C_kC1,C2,C3,…,Ck,其中保证d(Ci,Ci+1)>d(Ci+1,Ci)d(C_i,C_{i+1})>d(C_{i+1},C_i)d(Ci,Ci+1)>d(Ci+1,Ci),而这个路径有一个值(序列值)代表d(Ct,Ct+1),1≤t<kd(C_t,C_{t+1}),1\leq t<kd(Ct,Ct+1),1≤t<k的最小值。
定义S(x,y)S(x,y)S(x,y),对于上述所有序列C1=xC_1=xC1=x,Ck=yC_k=yCk=y即以xxx为开头,yyy结尾的序列中,序列值的最大值
如果对于一个化妆品xxx来说的S(x,i)≥S(i,x),(1≤i≤m,i≠x)S(x,i)\ge S(i,x),(1\leq i\leq m,i\ne x)S(x,i)≥S(i,x),(1≤i≤m,i=x)对于上述条件的iii都成立,那么它就是“好”的化妆品。
现在求出所有“好”化妆品的编号?
首先暴力求出d(i,j)d(i,j)d(i,j),然后floyd暴力求出S(i,j)=max(S(i,j),min(d(i,k),d(k,j)))S(i,j)=max(S(i,j),min(d(i,k),d(k,j)))S(i,j)=max(S(i,j),min(d(i,k),d(k,j)))
最后暴力比较求出答案。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=510;
int n,m;
int a[N][N],d[N][N];
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>m>>n;for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){cin>>a[i][j];if(a[i][j]==0) a[i][j]=1e8;}for(int i=1;i<=m;i++) for(int j=i+1;j<=m;j++){for(int k=1;k<=n;k++){if(a[k][i]<a[k][j]) d[i][j]++;if(a[k][i]>a[k][j]) d[j][i]++;}int x=d[i][j],y=d[j][i];if(x>=y) d[j][i]=0;if(y>=x) d[i][j]=0;}for(int k=1;k<=m;k++) for(int i=1;i<=m;i++)for(int j=1;j<=m;j++){if(!d[i][k]||!d[k][j]) continue;d[i][j]=max(d[i][j],min(d[i][k],d[k][j]));}vector<int> ans;for(int i=1;i<=m;i++){bool ok=1;for(int j=1;j<=m;j++){if(i==j) continue;if(d[i][j]<d[j][i]) ok=0;}if(ok) ans.push_back(i);}for(auto t:ans) cout<<t<<' ';cout<<'\n';}return 0;
}
总结:首先需要暴力理解题意
2018 ACM ICPC Asia Regional - Seoul B.Cosmetic Survey相关推荐
- Problem 1002-2017 ACM/ICPC Asia Regional Shenyang Online
网络赛:2017 ACM/ICPC Asia Regional Shenyang Online 题目来源:cable cable cable Problem Description: Connecti ...
- 2015 ACM/ICPC Asia Regional Shenyang Online题解
以下所有AC题解程序来自"仙客传奇"团队. AC题数:7/13 ABCFGJL A. Traversal AC的C++语言程序: #include <bits/stdc++. ...
- 2017 ACM ICPC Asia Regional - Daejeon
2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...
- 2014 ACM/ICPC Asia Regional Guangzhou Online C题Wang Xifeng's Little Plot(dfs)
Wang Xifeng's Little Plot Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- The 36th ACM/ICPC Asia Regional Dalian Site 1006 Dave
Dave Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65768/65768K (Java/Other) Total Submissi ...
- 2013 ACM/ICPC Asia Regional Chengdu Online We Love MOE Girls 字符串STL 的应用
题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=4730 分析1:string s.substr(pos, n) 从 pos 开始 截取n个 字符 代码 ...
- 2016 ACM/ICPC Asia Regional Shenyang Online
I:QSC and Master 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5900 题意: 给出n对数keyi,vali表示当前这对数的键值和权值 ...
- hdu 5023 poj 2777(线段染色)2014 ACM/ICPC Asia Regional 广州 Online
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5023 http://poj.org/problem?id=2777 题意:给出一个长度为N的线段,分 ...
- 2016 ACM/ICPC Asia Regional Qingdao Online 1005 Balanced Game
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5882 Problem Description Rock-paper-scissors is a ze ...
最新文章
- 使用 ChatterBot 库制作一个聊天机器人
- 测试php程序运行时间
- java求职_Java 求职怎么积累知识才可以找到工作
- java线程带来的异常,java多线程练习之捕获子线程异常例子
- java 双等号(==) 与equals方法的介绍和区别
- git detached head
- 【Spark Summit EU 2016】Glint: Spark的异步参数服务器
- 数百GitHub私有代码库被黑客清空:不交赎金就公开源码!
- 转载——python字符串常用操作(加案例)
- Arcgis Android 基本概念 - 浅谈
- 【读书笔记《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建
- lumion制作海上明月5.29
- IT职场人士值得关注的十大博客之二:人人都是产品经理
- epoll与reactor模式
- wd 文件服务器客服电话,wd 云服务器
- redis 交集、并集、差集
- 三味眼中的十二“最”……
- 无需注解快速生成API文档,跟SpringBoot绝配
- 没有内存,怎么还能跑程序呢
- 软件发展新方向-新技术革命
热门文章
- python opencv 图像添加噪声_opencv+python同时加椒盐噪声和随机杂点噪声
- [Java网络编程基础]端口,协议
- [Java基础]哈希值
- C++ 泛型编程 实现红黑树RBTree
- hash table(全域散列法实现的哈希表)
- linux加大ram 内核需要,Linux 5.1内核发布:io_uring接口+支持持久性内存用作RAM
- all()与any()
- Leetcode动态规划 不同路径
- 经典排序算法(4)——折半插入排序算法详解
- github 创建文件夹