首页 > 其他分享 >2023年百度之星初赛第三场

2023年百度之星初赛第三场

时间:2023-09-25 13:24:12浏览次数:34  
标签:文字 shs int ans 初赛 2023 mod 第三场 define

1. BD202317 石碑文(状压dp)

在历史的长河中,石碑静静地矗立,风雨侵蚀,岁月沧桑,它们见证了历史的变迁,承载了无数的故事和传说。这些石碑,如同历史的见证者,在它们的表面,残留下的文字,似乎在诉说着那一段段遥远的往事。

这些文字,犹如古老的诗篇,是历史与文化的交织,是时间的印记,是古人留给我们的宝贵遗产。它们笔画繁复,有的严谨大方,有的古朴深沉。每一个字都似乎在诉说着一个古老的故事,每一段文字都在细语着一段历史的传说。

在破败的石碑上,我们仿佛可以看到那些古人的智慧,他们的喜怒哀乐,他们的悲欢离合。这些文字,如同古老的旋律,或低沉悲壮,或慷慨激昂,它们是古人对历史的呼喊,是对生活的热烈歌颂。

现在小度在石碑上找到了一些文字,这些文字包含N个英文字符,这些文字依稀可以辨认出来,另一些文字难以辨认,在可以辨认出来的文字中,小度发现了他喜欢的文字“shs”,小度习惯把喜欢的事物说三遍及以上,他希望知道原始的石碑上有多少种可能性会出现三次及以上“shs”(三个“shs”不能出现重合,即“shshs”只能算出现一次“shs”),这样的碑文可能有很多,你只需要输出答案对1e9+7取模的结果即可。

格式

输入:一行输入的是整数 n,(1≤n≤106),表示碑文长度 。
输出:一行一个数字,表示有多少种字符串可能出现了三个及以上shs。

样例

输入:10
输出:104

说明

样例解释:shsshsshs* 26种,* shsshsshs 26种,shsshs* shs 26种,shs* shsshs 26种。

点击查看代码
#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);
#define int long long
#define mod 1000000007

using namespace std;

const int N = 1e6 + 10;

int n, m;
int f[N][10];

void solve()
{
	cin >> n;
	f[0][0] = 1;
	for(int i = 0; i < n; i ++)
	{
		for(int j = 0; j < 10; j ++)
		{
			if(j == 9)
				f[i + 1][j] = (f[i + 1][j] + 26 * f[i][j]) % mod;
			else if(j % 3 == 1)
			{
				f[i + 1][j] = (f[i + 1][j] + f[i][j]) % mod;
				f[i + 1][j + 1] = (f[i + 1][j + 1] + f[i][j]) % mod;
				f[i + 1][j / 3 * 3] = (f[i + 1][j / 3 * 3] + 24 * f[i][j]) % mod;
			}
			else
			{
				f[i + 1][j + 1] = (f[i + 1][j + 1] + f[i][j]) % mod;
				f[i + 1][j / 3 * 3] = (f[i + 1][j / 3 * 3] + 25 * f[i][j]) % mod;
			}
		}
	}
	cout << f[n][9] << '\n';
}

signed main()
{
	IOS;
	// get();
	int _ = 1;
	// cin >> _;
	while(_ --)
		solve();
	return _ ^ _;
}

2. BD202318 染色游戏

小度在公园玩一个染色游戏,染色板为一个长为 n,宽为 m 的长方形网格,一开始它们的颜色都是白色。
小度的颜料可以将其中的 k 个的格子染成黑色,颜料需要用完,且不能重复染色。
最终的要求是任意相邻两行或任意相邻两列要么保证完全一致,要么完全不一致。

完全一致指相邻行/列中相邻的格子要么同为白色,要么同为黑色。
完全不一致指相邻行/列中相邻的格子一个为白色,一个为黑色。

请计算有多少种染色方案。

格式:

输入:一行,三个整数 n,m,k(1≤n,m≤107,0≤k≤n × m) 。
输出:一行,输出答案,由于答案过大所以输出答案对 998244353 取模的结果。

样例

输入:2 2 2
输出:6

说明

点击查看代码
#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);
#define int long long
#define fi first
#define se second
#define pb push_back
// #define mod 1000000007
#define mod 998244353

using namespace std;

const int N = 1e7 + 10;

int n, m, k, ans;
int inv[N];
int cm[N], cn[N];

int qmi(int a, int b)
{
	int ans = 1;
	while(b)
	{
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return ans;
}

void init()
{
	inv[0] = inv[1] = 1;
	int t = max(n, m);
	for(int i = 2; i <= t; i ++)
		inv[i] = ((mod - mod / i) * inv[mod % i]) % mod;
	cm[0] = cn[0] = 1;
	for(int i = 1; i <= m; i ++)
		cm[i] = (((cm[i - 1] * (m - i + 1)) % mod) * inv[i]) % mod;
	for(int i = 1; i <= n; i++)
		cn[i] = (((cn[i - 1] * (n - i + 1)) % mod) * inv[i]) % mod;
}

void solve()
{
	cin >> n >> m >> k;
	if(k == 0||k == n * m)
	{
		cout << "1\n";
		return ;
	}
	init();
	int t = m / 2;
	for(int i = 0; i < t; i ++)
	{
		int a = (m - i) * n - k;
		int b = (m - 2 * i);
		if(a < 0||a % b||a / b > n)
			continue;
		int y = a / b;
		ans = (ans + cm[i] * cn[y]) % mod;
	}
	if(!(m & 1)&&(n * m / 2) == k)
		ans = (ans + cm[m / 2] * qmi(2, n - 1)) % mod;
	cout << ans << '\n';
}

signed main()
{
	IOS;
	// get();
	int _ = 1;
	// cin >> _;
	while(_ --)
		solve();
	return _ ^ _;
}

标签:文字,shs,int,ans,初赛,2023,mod,第三场,define
From: https://www.cnblogs.com/chfychiin/p/17727727.html

相关文章

  • FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心
    FlashDuty:一站式告警响应平台,前往此地址免费体验!自定义字段FlashDuty已支持接入大部分常见的告警系统,我们将推送内容中的大部分信息放到了Lables进行展示。尽管如此,我们用户还是会有一些扩展或定制性的需求,比如人工标记一个故障是否为误报。因此我们提供了自定义字段功能,......
  • 【2023-09-22】休息空间
    20:00心太小了,所有的小事就大了。心大了,所有的大事都小了。                                                 ——丰子恺昨晚何太下班晚,也不想她太折腾,就睡酒店了。说......
  • 2023-09-23-周日
    1),今天去骑行成都锦城绿道·天府绿道了所以一天也没干什么..就和ice,tyj,zk一起骑共享单车从早上9:00出发,,,到晚上9:00才骑行完毕..哭死......
  • 【2023-09-23】连岳摘抄
    23:59返照斜初彻,浮云薄未归。江虹明远饮,峡雨落馀飞。凫雁终高去,熊罴觉自肥。秋分客尚在,竹露夕微微。                                                 ——唐·杜甫《晚......
  • FlashDuty Changelog 2023-09-07 | 新增深色模式与主题配置
    FlashDuty:一站式告警响应平台,前往此地址免费体验!FlashDuty现在已经全面支持了深色模式,这为您提供了更柔和的光线和舒适的界面外观。并且,您可以根据自己的喜好和使用环境动态切换深色和浅色模式与主题,提高使用体验的个性化和灵活性。深色模式效果预览为了确保在深色模式下......
  • FlashDuty Changelog 2023-09-07 | 新增深色模式与主题配置
    FlashDuty:一站式告警响应平台,前往此地址免费体验!FlashDuty现在已经全面支持了深色模式,这为您提供了更柔和的光线和舒适的界面外观。并且,您可以根据自己的喜好和使用环境动态切换深色和浅色模式与主题,提高使用体验的个性化和灵活性。深色模式效果预览为了确保在深色模式下能够呈现......
  • FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心
    FlashDuty:一站式告警响应平台,前往此地址免费体验!自定义字段FlashDuty已支持接入大部分常见的告警系统,我们将推送内容中的大部分信息放到了Lables进行展示。尽管如此,我们用户还是会有一些扩展或定制性的需求,比如人工标记一个故障是否为误报。因此我们提供了自定义字段功能,来进一......
  • 2023年9月软考中级系统集成项目管理工程师报名到这好
    系统集成项目管理工程师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成项目管理工程师,属于软考三个级别中的“中级”。 考试合格者将颁发由中......
  • 2023年东莞/深圳CPDA数据分析师认证报名小哥哥来这
    CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三,为大部分决策难题提供解决方案。帮助数据分析人员掌握几种通用的数据......
  • 20230924
    23/09/24NOIP模拟赛总结时间安排8:00-8:20看题8:20-8:40思考T1,感觉是最短路,但不知道最长距离怎么处理8:40-9:10感觉T2是组合数,但是有个细节不会处理,先把暴力打了9:10-9:40写T3暴力,感觉今天的题好难啊。9:40-10:30回到T1,发现这就是\(n\)遍\(dijkstra\),写完正解又写......