bzoj3139: [Hnoi2013]比赛

HC32F460外设实战:巧用键盘扫描模块做个矩阵键盘(附完整代码) 本文详细介绍了如何利用HC32F460的键盘扫描模块实现4x4矩阵键盘的硬件加速方案。通过硬件模块的优势,包括内置扫描电路、可编程扫描频率和硬件消抖,显著降低CPU占用率和代码量。文章提供了完整的硬件设计要点、驱动开发步骤和实战问题排查指南,适合开发者在工业控制等场景中快速应用。 阅读详情

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3139

思路:记忆化搜索

首先每个队最多只会得27分,27^10还是没有炸longlong的,所以可以用hash存下来。

每个队没有本质区别,所以每层搜索前先排好序,再来一层搜索枚举出当前队和剩余队的输赢情况,转化成子问题继续递归处理。

据说状态数很多,但还是可以接受的。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int maxn=12,mod=37779,bas=23,maxt=1500010,pp=1000000007;
typedef long long ll;
using namespace std;
int n,a[maxn],tim;
struct hash{
	int pre[maxt],now[100010],tot;ll val[maxt],sta[maxt];
	ll find(ll x){
		int u=x%mod;
		for (int y=now[u];y;y=pre[y]) if (sta[y]==x) return val[y];
		return -1;
	}
	void add(ll x,ll cnt){int u=x%mod;pre[++tot]=now[u],now[u]=tot,sta[tot]=x,val[tot]=cnt;}
}h;
//void print(int a[]){for (int i=0;i<=n;i++) printf("%d ",a[i]);puts("");}
ll encode(int a[]){
	ll res=0;
	for (int i=0;i<=n;i++) res=res*30+a[i];
	return res;
}
void decode(int a[],ll x){for (int i=n;i>=0;i--) a[i]=x%30,x/=30;}
ll dfs1(ll x);
ll dfs(int a[],int x,int y){
	ll ans=0;
	//if ((++tim)%10000==0) printf("%d\n",tim);
	if (y>n){
		if (!a[x]){
			int t[maxn];
			for (int i=1;i<=n;i++) t[i]=a[i];
			sort(t+1,t+1+n),t[0]=x;
			return dfs1(encode(t));
		}
		else return 0;
	}
	a[x]-=3;
	if (a[x]>=0&&a[y]>=0) ans+=dfs(a,x,y+1);
	a[x]+=3,a[y]-=3;
	if (a[x]>=0&&a[y]>=0) ans+=dfs(a,x,y+1);
	a[y]+=3,a[x]--,a[y]--;
	if (a[x]>=0&&a[y]>=0) ans+=dfs(a,x,y+1);
	a[x]++,a[y]++;return ans;
}

ll dfs1(ll x){
	ll tmp=h.find(x);
	if (tmp!=-1) return tmp;
	int b[maxn];decode(b,x); //if (tim%10000==0)print(b);
	if (b[0]==n&&b[n]==0) return 1;
	ll sum=dfs(b,b[0]+1,b[0]+2);
	h.add(x,sum);return sum;
}

int main(){
	scanf("%d",&n);
	for (int i=1;i<=n;i++) scanf("%d",&a[i]);
	sort(a+1,a+1+n),printf("%lld\n",dfs1(encode(a))%pp);
	return 0;
}

/*
10
21 12 16 8 3 4 7 20 12 13
*/



西门子S7-1200PLC PID_Temp工艺指令在恒温控制中的实战应用 本文详细介绍了西门子S7-1200PLC中PID_Temp工艺指令在恒温控制系统中的实战应用。从硬件选型、安全接线,到TIA Portal软件组态、编程及核心PID_Temp指令调用,手把手指导搭建系统。重点讲解了利用指令自带的预调节与精确调节功能进行PID参数自整定,最终实现高精度、低波动的温度控制,适用于塑料成型、食品烘烤等多种工业场景。 阅读详情

相关推荐

Jasper Report使用JSON数据源创建报表

最近在做一个项目小功能,表单结案要生成PDF报表。 起初,想用HTML模板(art-template模板引擎)编写,利用浏览器的打印功能保存成pdf文件下载。但是HTML编写好的模板,页码、页眉、页脚设置有坑,表单内容中的表格较多,表格不能设置跨页,导致跨页的表格内容与页眉重叠,没能解决这个问题。 于是,转战研究Jasper report生成报表,用更加专业的报表生成工具来做。刚开始,也是跌跌撞撞,遇到了很多问题,因为觉得没有退路了,必须要用这个搞出来,所以就硬着头皮去找各种资料。 主要使用的json

xiaogege2012的专栏 3319

BZOJ3139: [Hnoi2013]比赛

bzoj1306的强化版(双倍经验) 搜索,假设你现在刚匹配完第ii个,那么i+1i+1到nn之间比赛的输赢和前面的输赢是没有关系的,所以可以将i+1i+1到nn的剩余分数排序之后(顺序和答案无关)按28进制用map来hash(乘爆了就自然溢出也没什么关系)加记忆化code:#include<set> #include<map> #include<deque> #include<queue> #i

L_0_Forever_LF的专栏 574

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1798

[题解] BZOJ 3139 [HNOI2013] 比赛

题目描述 Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛。此次联赛共&amp;N&amp;支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛。 (2) 若平局,两支球队各得1分。 (3) 否则胜利的球队得3分,败者不得分。 尽管非常遗憾没有观赏到精彩的比赛,但沫沫通过新闻知道了每只球队的最后总得分, 然后聪明的她想计算出有多少种可...

Chlience的博客 554

纽扣电池供电系统优化:NBM5100A与STM32F745VG组合方案

在低功耗物联网设备设计中,能量管理是核心挑战之一。纽扣电池因其体积小、成本低被广泛采用,但瞬时大电流需求常导致电压骤降和寿命缩短。通过超级电容缓冲技术,可以实现能量的细水长流式存储与集中释放。NBM5100A电源管理IC与STM32F745VG微控制器的组合方案,采用双阶段能量管理架构,先以恒定小电流充电,再通过电容释放大电流。这种方案不仅能提升系统稳定性,还能延长电池寿命3-5倍,特别适合智能门锁、无线传感器等需要间歇性高功率输出的场景。

weixin_29194255的博客 257

Flutter项目在M1/M2 Mac上跑iOS模拟器报错?手把手教你搞定‘arm64架构不兼容’问题

本文详细解析了Flutter项目在M1/M2 Mac上运行iOS模拟器时遇到的‘arm64架构不兼容’问题,提供了多种解决方案,包括排除模拟器的arm64架构、强制使用x86_64架构以及修改插件Podspec文件。帮助开发者快速解决架构兼容性问题,提升开发效率。

weixin_33713707的博客 335

【搜索】BZOJ3139 HNOI2013比赛

BZOJ3139 搜素题一道。 n<=8n<=8乱搞都可以过。(BZOJ1306和这道题一模一样,只是n<=8n<=8)先付乱搞代码一份(只能过BZOJ1306)#include <iostream> #include <cstdio> #define mod 1000000007 using namespace std; int n, rest[15], ans, sum; void dfs(

379

Smart200 PLC实现Bool信号接通延时、关闭延时作用

解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数

gk_121的博客 4318

BZOJ 3139: [Hnoi2013]比赛

这题嘛,我们可以首先考虑枚举一共n*(n-1)/2次比赛的结果,然后判断一下就好了 其实有一点是显然的,分数序列的顺序不影响答案 所以我们用最小表示法来表示分数序列,然后记忆化搜索一下就好了。 #include #include #include #include #include using namespace std; typedef long long ll; const int p=

月下沙茶树 615

Quartus Prime器件库安装实战:从版本选择到权限避坑指南

本文详细介绍了Quartus Prime器件库的安装全流程,从版本选择、精准下载到权限设置和安装验证。重点解析了版本匹配的黄金法则、管理员权限的必要性以及安装路径的最佳实践,帮助用户避开常见陷阱,确保器件库安装一次成功。

weixin_33713707的博客 514

深入解析:el-table合并单元格

  在企业级应用开发中,我们经常需要处理复杂的数据展示需求。在构建复杂的数据展示后台时,我们常常需要将表格中具有相同属性的行进行视觉上的合并,以提升信息的聚合度和可读性。在 Element Plus 的 el-table 组件中,span-method 属性是实现单元格合并的核心机制,允许开发者自定义单元格的合并逻辑,开发者可以通过实现自定义合并策略来满足各种负责需求。  合并行的本质是通过计算相邻行数据的相似性,确定满足合并的单元格范围,然后通过 DOM 操作将多个单元格合并为一个。这种操作在前端数据可视

独泪了无痕 228

[BZOJ3139][搜索]HNOI2013:比赛

BZOJ3139 搜索,最优性剪枝,记忆化 Code: #include<bits/stdc++.h> #define ll long long using namespace std; const int N=15; map<ll,int>mp; int n,a[N],h[N]; inline ll H(int x){ ll res=x-1; for(in...

romiqi 135

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

bzoj 3139: [Hnoi2013]比赛

Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛。此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛。 (2) 若平局,两支球队各得1分。 (3) 否则胜利的球队得3分,败者不得分。 尽管非常遗憾没有观赏到精彩的比赛,但沫沫通过新闻知道了每只球队的最后总得分, 然后聪明的她想计算出有多少种可能的比赛过程。 譬如有3支球队,每支球队...

weixin_30515513的博客 95

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【BZOJ】3139: [Hnoi2013]比赛

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3139   可以发现,答案之和得分的序列有关,而且和序列中每个元素的顺序无关。考虑HASH所有的状态,记忆化搜索即可。   (取模出问题+没有判断是否访问,即答案为0的状态有的可能已经访问过了)调了一个多小时。 #include<iostream> ...

weixin_30466421的博客 106

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

3139:[HNOI2013]比赛 - BZOJ

题目描述 Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛。此次联赛共N只队伍参加,比赛规则如下: (1) 每两支球队之间踢一场比赛。 (2) 若平局,两支球队各得1分。 (3) 否则胜利的球队得3分,败者不得分。 尽管非常遗憾没有观赏到精彩的比赛,但沫沫通过新闻知道了每支球队的最后总得分,然后聪明的她想计算出中多少种可能的...

weixin_30611509的博客 64

bzoj千题计划294:bzoj3139: [Hnoi2013]比赛

http://www.lydsy.com/JudgeOnline/problem.php?id=3139 队伍的顺序不会影响结果 将队伍的得分情况作为状态,记忆化搜索 就是先搜索第一只队伍的得分情况,即为他分配分数 当第一只队伍的分数分配完时,它与其他队伍的比拼会使其他队伍也分配到了一定的分数 将其他队伍分配到的分数 这个状态 哈希 然后第二支队……,这就是子问题 ...

weixin_30369041的博客 117

bzoj3139 [Hnoi2013]比赛

题目根据数据范围猜算法。。n<=10,貌似在告诉我:快来搜素我,233。搜索,当然裸的过不了,看了看dalao题解,很玄学啊。由于分数顺序不重要,我们就升序排,就可以表示状态了,再开个map,就去重了,貌似十分有道理,但我随意随机的数据,大概都是要T的,233。但交上去后,发现跑得贼快,怕是根据标程可过造数据233。#include<bits/stdc++.h> #define mod 100000

浅笑~如夏 372

BZOJ3139 [Hnoi2013]比赛

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:BZOJ3139 正解:搜索+hash 解题报告:   考虑直接爆搜的话,就是枚举当前的与之后...

dgoh41514的博客 144

【bzoj3139】[Hnoi2013]比赛

特技暴搜,记忆化搜索

Circus 789

Hnoi2013题解 bzoj3139~3144

话说好久没写题(解)了。。 先贴份题解:http://wjmzbmr.com/archives/hnoi-2013-%E9%A2%98%E8%A7%A3/(LJ神题解。。Lazycal表示看不懂。。) 以下是Lazycal's题解: [bzoj3139][Hnoi2013]比赛 对于一个得分序列,可以发现不论如何排列,答案都是一样的。而且n的得分序列可以由n-1的推来。于是,我们...

198
上一篇: bzoj3573: [Hnoi2014]米特运输
下一篇: bzoj3142: [Hnoi2013]数列
thy_asdf
博客等级 码龄12年 0粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值