zoukankan      html  css  js  c++  java
  • Codeforces 140B(模拟)

    要点

    • 题意读好久。大概这样理解:每个时间点按顺序收到序号1~n的卡片,只有收过的卡片才能发给别人并且主人公会发在他心中优先级最高的。由于主人公可以在任何时间给朋友发卡片,最后输出(说得很绕但等价于)1~n号朋友最好可以得到什么类型的卡片。
    • 枚举时间点并看当前主角的最大优先级卡片是什么并给大家发,然后更新大家的接收类型。样例很良心,会发现只记录最大优先级的不够用,一旦等于这个人的编号就不允许发,这是该用第二优先级的来更新该人。
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    int n;
    int cmp[305][305], ans[305];
    
    int main() {
    	scanf("%d", &n);
    	for (int i = 1; i <= n + 1; i++) {
    		for (int j = 1, x; j <= n; j++) {
    			scanf("%d", &x);
    			cmp[i][x] = j;
    		}
    	}
    	int fir = 0, sec = 0;
    	memset(ans, 0x3f, sizeof ans);
    	for (int i = 1; i <= n; i++) {
    		if (!fir || cmp[n + 1][fir] > cmp[n + 1][i])	sec = fir, fir = i;
    		else if (!sec || cmp[n + 1][sec] > cmp[n + 1][i])	sec = i;
    		
    		for (int j = 1; j <= n; j++) {
    			if (fir && fir != j) {
    				if (ans[j] > 500 || cmp[j][ans[j]] > cmp[j][fir]) {
    					ans[j] = fir;
    				}
    			} else if (sec && sec != j) {
    				if (ans[j] > 500 || cmp[j][ans[j]] > cmp[j][sec]) {
    					ans[j] = sec;
    				}
    			}
    		}
    	}
    	for (int i = 1; i <= n; i++)
    		printf("%d%c", ans[i], " 
    "[i == n]);
    }
    
  • 相关阅读:
    Cornerstone-忽略(隐藏)文件
    ios开发xcode8+ 无需开发者账号,app打包ipa
    ssh-ajax登陆action返回字符串
    手动编译包含两个import自写类的java类。
    关闭IO资源
    java聊天室二(客户端)
    java聊天室一(服务器)
    文件IO常用操作
    Hive启动时的棘手问题的处理
    对于java反射的理解
  • 原文地址:https://www.cnblogs.com/AlphaWA/p/10894902.html
Copyright © 2011-2022 走看看