Facebook Hacker Cup 2016 Round 1 Boomerang Tournament

Facebook Hacker Cup 2016 Qualification Round 解题报告 Boomerang Constellations题意: 给定N≤2×103个点,求满足dis(x,y)=dis(y,z)的三元组(x,y,z)个数,(x,y,z)与(z,y,x)被认为是相同的给定N\le 2\times 10^3个点, 求满足dis(x, y) = dis(y, z)的三元组(x, y, z)个数, (x,y,z)与(z,y,x)被认为是相同的 分析: 首先有个显然的C3n 阅读详情

Boomerang Tournament

题意可以这样理解, 2k 个选手进行单淘汰比赛,对阵选手可以任意分组,求每个选手的最好和最坏可能名次。其中,每两个选手对阵的胜负是固定的。名次是这样定义的,比如8个人的比赛,第一轮挂的全部都是第5名,因为有4个人进入了下一轮,而没进入下一轮的4个人中又无法分出优劣。也就是说,名次只会出现1、2、3、5、9。

最坏名次是很好求的,如果某个选手能虐所有人,他必然拿到第1名,否则一定存在使他第一轮出局的安排。
最好名次则可以通过dp解决。 dp(i,j)=1 表示选手 i 能在选手集合j中胜出,集合 j 当然是用二进制位来表示对应的选手啦。状态转移是这样的,在求解dp(,j)时,把 j 以各种方法切分成相等的两半dp(,j1)和 dp(,j2) ,也就是上一轮。然后枚举 j1 和 j2 中的一名选手 i1 , i2 ,如果他们分别能胜出,则根据他们之间的胜负关系就可以进行转移,具体见代码。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int w[20][20];
bool dp[20][1<<16];

int count_bit(int x){
    int res = 0;
    while(x){
        if(x&1)res++;
        x>>=1;
    }
    return res;
}

int n;
vector<int> masks[20];

void init(){
    memset(masks,0,sizeof(masks));
    for(int i=1;i<(1<<n);i++){
        int cnt = count_bit(i);
        masks[cnt].push_back(i);
    }

    memset(dp,0,sizeof(dp));
    for(int i=1;i<=n;i++){
        dp[i][1<<(i-1)]=1;
    }
}

int get_mask(int x,int m){
    int bit=1;
    int res=0;
    while(x){
        if(x&1){
            if(m&1){
                res|=bit;
            }
            m>>=1;
        }
        bit<<=1;
        x>>=1;
    }
    return res;
}

int get_bit(int x,int bit){
    int ans=1;
    while(x){
        if(x&1){
            bit--;
            if(bit==0){
                return ans;
            }
        }
        ans++;
        x>>=1;
    }
    return -1;
}

int main(){
    int t;
    cin>>t;
    int cas = 0;
    while(t--){
        cas++;
        cin>>n;
        init();

        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                scanf("%d",&w[i][j]);
            }
        }

        //
        for(int i=2;i<=n;i*=2){
            for(int j=0;j<masks[i].size();j++){
                int mask = masks[i][j];
                int half = i>>1;
                for(int k=0;k<masks[half].size();k++){
                    if(masks[half][k]>=(1<<i))break;
                    int m1 = get_mask(mask,masks[i>>1][k]);
                    int m2 = mask^m1;
                    for(int ii = 1;ii<=half;ii++){
                        for(int jj = 1;jj<=half;jj++){
                            int bit1 = get_bit(m1,ii);
                            int bit2 = get_bit(m2,jj);
                            if(dp[bit1][m1] && dp[bit2][m2]){
                                if(w[bit1][bit2]){
                                    dp[bit1][mask] = 1;
                                }
                                if(w[bit2][bit1]){
                                    dp[bit2][mask] = 1;
                                }
                            }
                        }
                    }
                }
            }
        }

        printf("Case #%d: \n",cas);

        for(int i=1;i<=n;i++){
            int MAX = 0;
            for(int j=1;j<(1<<n);j++){
                if(dp[i][j]){
                    MAX = max(MAX,count_bit(j));
                }
            }
            bool flag=1;
            for(int j=1;j<=n;j++){
                if(i==j)continue;
                if(!w[i][j])flag=0;
            }
            int ans1,ans2;
            if(MAX==n){
                ans1=1;
            }else if(MAX==n/2){
                ans1=2;
            }else if(MAX==n/4){
                ans1=3;
            }else if(MAX==n/8){
                ans1=5;
            }else{
                ans1=9;
            }
            if(flag){
                ans2=1;
            }else{
                ans2=n/2+1;
            }
            cout<<ans1<<" "<<ans2<<endl;
        }

    }
    return 0;
}
国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

电子设计实战:用MOS管手把手搭建D触发器电路(含时序分析避坑指南)

本文详细介绍了如何使用MOS管从零开始搭建D触发器电路,重点解析了建立时间和保持时间等关键时序参数对电路稳定性的影响。通过实测波形分析和避坑指南,帮助电子工程师掌握D触发器的实际搭建技巧与优化方法,提升数字电路设计的可靠性。

x1y2z的博客 1161

Facebook Hacker Cup 2016 Round 1 Laundro, Matt

Facebook Hacker Cup 2016 Round 1 注意 Laundro, Matt20 points Download Input Choose Output No output file selected Submit Matt Laundro i

catTom的博客 1151

文献阅读笔记:量子微波测量技术综述

量子微波测量技术研究进展:量子微波测量技术利用里德堡原子与微波电场的相干相互作用,突破了传统测量方法的物理限制。该技术基于电磁诱导透明效应和里德堡原子能级跃迁原理,通过激光激发原子并监测光谱变化来测量微波电场强度。相比传统方法,量子微波测量具有超高灵敏度(理论极限可达nV/cm)、宽动态范围(超过100dB)、小型化等显著优势,且测量结果可直接溯源至普朗克常数。典型实验系统包括光源、原子气室和探测器,采用光谱法、干涉法等多种测量方法。近年来,该技术在基础研究和应用方面取得重要进展,展现出在通信、雷达、计量等

Grow into a more wonderful you 988

Facebook Hacker cup Qualification round Problem 1

前几天看到Facebook 主办的比赛,题目还是比较有意思的,废话少说,直接上题 题目如下:输入为 "#" 和 "." 构成的M*M的矩形,判断在图中由所有”#“构成的图形是否为实心正方形。为矩形则输出”YES“,否则输出”NO“ 比如: ..## ..## .... .... 输出为 YES 但是这个 ..## ..## #... 输出为 NO...

dbu50120的博客 287

通达信短周期指标盘中实时监控与预警选股实战

本文详细介绍了通达信短周期指标在盘中实时监控与预警选股中的实战应用。通过分时指标改造、多股同列监控技巧及预警策略优化,帮助短线交易者捕捉转瞬即逝的交易机会,提升选股效率与准确性。重点解析了如何避免假信号干扰及系统卡顿问题,并探讨了从预警到自动交易的进阶应用。

weixin_29230805的博客 899

【视频编码学习】AVS3参考软件HPM-4.1简单配置运行

1、用Visual Studio2017打开HPM-4.1文件夹 2、找到文件夹目录下x86_windows文件夹,因为是在win上运行该代码 3、然后找到对应vs版本(我当时2017版)的解决方案sln文件,双击打开可以看到该解决方案下的全部项目。 4、重新生成解决方案时发现提示sdk版本问题,所以右键点击所有的项目,选择重定向项目,修改一下sdk版本。 ...

谦虚勤奋诚实感恩 3100

UVa 1629 - Cake slicing

题意:n*m大小的蛋糕,被分成n*m个区域,其中k个区域上面有樱桃。你需要把蛋糕切成k份,每份都有樱桃,切的时候只能水平或竖直沿着网格线切,切到底。问最短切的长度是多少。 思路:DP。DP[u][d][l][r]。u,d,l,r表示整块蛋糕的上下左右。

A Cube Master 1948

【实战篇】【硅基流动API+Cherry Studio搭建个人知识库全流程解析:从零到精通的超详细指南】

在人工智能技术高速发展的今天,基于大语言模型的知识库已成为开发者提效的必备工具。然而云端服务存在响应延迟、数据隐私、硬件依赖等痛点。通过硅基流动API与的深度整合,我们既能享受大模型的强大能力,又能实现本地化部署与高效管理。本文将从环境配置到高阶调优,手把手带你构建企业级知识库系统。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1082

UVa242 Stamps and Envelope Size

题意:信封上最多贴S张邮票。有N个you

A Cube Master 1729

2022中山大学计算机技术专硕考研初试、复试经验帖

个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧。可以帮助节省时间! 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 机试 笔试 面试 关于选导师 个人感言

zik的博客 1万+

LVGL iPhone Duo 开合过渡

环境:LVGL 9.x(需要软件模糊),窗口建议 1280×800。界面文案英文(默认 Montserrat 无 CJK)。

摸鱼专家 149

UVa1630 Folding/poj 2176 Folding/zoj 1554 Folding

题意:给一个由大写字母组成的chuan

A Cube Master 1330

YOLOv8全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 516

UVa12093 Protecting Zonk

题意:给定一个有n个节点的wu'gen'shu

A Cube Master 1270

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CF 793D Presents in Bankopolis

D. Presents in Bankopolis一个有向图,节点“有序”,找一条长度为k的最短路径,额外要求是当前边不能“跃过”已经经过的节点。 起点的选择范围是[1,n]然后每经过一个点,下一个能到达的点的范围就会缩小,注意到总可以用一个连续的范围表示之,记为[l,r]。那么用dp解决,状态dp[l][r][k]表示可达范围是[l,r],已经走了k步。 貌似dp写成记忆化搜索更符合我的思维,

A Cube Master 1154

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu 5119 Happy Matt Friends

题意:n个数,可以取其中一部分来异或,问全部异或结果不小于m有多少种取法。         思路:dp(背包)。dp(i,j)表示取到第i个数,异或结果为j,有多少种方法。初态是有一种取法取得0,然后对每个数,有两种选择,取或不取,加上上一步的路径数就可以了。最后将dp(n,j)中j>=m的部分求和就行。需要注意的是,会爆int。 #include #include #include

A Cube Master 1146

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

UVa1213 Sum of Different Primes

问一个数能表示为不同的 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #defin

A Cube Master 1098

CF 797F Mice and Holes(单调队列优化dp)

F. Mice and Holes 先给老鼠和洞排序,然后dp解之dp[i][j]表示前i个洞进了j个老鼠的最小cost,很容易想到O(n∗n∗m)O(n*n*m)的做法。然后试了下类似多重背包的方法去优化,结果T了。。 看了下官方题解,给的方案是用单调队列优化。因为我们要从dp[i-1][j-1],dp[i-1][j-2],dp[i-1][j-3]…转移到dp[i][j],每个不同的状态转移过

A Cube Master 1097

UVa12563 Jin Ge Jin Qu hao

知道它是0-1背包,还是跪了很多次。。xian

A Cube Master 970

TopCoder SRM 696

给了20条边,最多会涉及到40个点。我们可以先贪心把那些肯定不会影响结果的点先染色(比如度为0的点和度为1的点,如果一条边连接的两个点度都是1,那么先只染一个,不然会有花费)。贪心过后,最多剩下20个点,这样就可以状压dp了。#include <bits/stdc++.h> using namespace std;#define ll long longint deg[55]; bool vis[5

A Cube Master 925

UVa1252 Twenty Questions

传说中的状态压缩DP。。把某一类状态压缩成

A Cube Master 842

hdu 5001 Walk

题意:一个连通的无向图,等概率

A Cube Master 799

UVa1218 Perfect Service

稍复杂的树型dp。。状态的类型不仅跟当前节点有关,还与当前jie'di

A Cube Master 793

hdu 5045(上海网赛1004)Contest

题意:一个比赛,n个人搞,有m道题,只能按顺序交题, 思路:

A Cube Master 775

UVa10118 - Free Candies

题意:有4堆糖果,每堆有n个,按顺序排列。每次可以na

A Cube Master 774

Meta调整Facebook广告性别定向!Value Rules价值规则如何优化广告受众?

Meta调整Facebook广告性别定向!Value Rules价值规则如何优化广告受众?

2609_95702483的博客 219
上一篇: Codeforces Round #339 (Div. 1) ABC
下一篇: Codeforces Round #340 (Div. 2) E XOR and Favorite Number
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值