首页 > 其他分享 >day1

day1

时间:2024-10-07 16:43:47浏览次数:8  
标签:nxt int st 括号 2n day1 MOD

day 1

雷暴 (storm)

题目要求计算覆盖所有相同颜色格子的最小正方形的面积。


#include <bits/stdc++.h>
using namespace std;

int n, m, k;
int a[1005][1005];

struct node{
	int x, y;
}f[100005], g[100005];

int main()
{
	freopen("storm.in", "r", stdin);
	freopen("storm.out", "w", stdout);
	ios :: sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m >> k;
	for(int i = 1;i <= n;i++)
		for(int j = 1;j <= m;j++)
			cin >> a[i][j];
	for(int i = 1;i <= n;i++)
		for(int j = 1;j <= m;j++)
		{
			if(f[a[i][j]].x == 0 && f[a[i][j]].y == 0) 
			{
				f[a[i][j]].x = i;
				f[a[i][j]].y = j;
			}
			else 
			{
				f[a[i][j]].x = min(f[a[i][j]].x, i);
				f[a[i][j]].y = min(f[a[i][j]].y, j);
			}
		}
	for(int i = 1;i <= n;i++)
		for(int j = 1;j <= m;j++)
		{
			if(g[a[i][j]].x == 0 && g[a[i][j]].y == 0) 
			{
				g[a[i][j]].x = i;
				g[a[i][j]].y = j;
			}
			else 
			{
				g[a[i][j]].x = max(g[a[i][j]].x, i);
				g[a[i][j]].y = max(g[a[i][j]].y, j);
			}
		}
	for(int i = 1;i <= k;i++)
	{
		int t = abs(max(g[i].x - f[i].x, g[i].y - f[i].y)) + 1;
		cout<<t * t<<"\n";
	}
	return 0;
}

神力

小z初始在0号位置,每次都会向左或向右走一个单位坐标,他的行走轨迹可以看作一个长度为n的序列\(a_i\)保证\(abs\)|\(a_i\)| \(=1\)

因为神力的存在,所以小 Z 有\(\frac{p}{100}\)的概率可能在第 i 个时刻突然不想移动了,即不
进行这个时刻的移动操作

题目需要计算小Z经过各个位置的概率,并返回对应的结果。

样例

输入

5 83

1 -1 -1 1 1

输出

0 0 0 710859005 390982003 1 135049706 506522154 13802205 0 0

soluton

我们考虑从后往前,令\(f_i,_j\)考虑了后\(i\)步操作,当前位置为\(j\)的概率。

每次只要将\(f_i,0\)设为1即可

code

#include <bits/stdc++.h>
using namespace std;
#define int long long

const int N = 5005, MOD = 1e9 + 7;

int qpow(int x, int y)
{
   int cnt = 1;
   for(; y; y >>= 1)
   {
   	if(y & 1) cnt = cnt * x % MOD;
   	x = x * x % MOD;
   }
   return cnt;
}

int n, p, a[N], dp[N][N * 2], ans; 

signed main()
{
   cin >> n >> p;
   p = p * qpow(100, MOD - 2) % MOD;
   int ip = (1 - p + MOD) % MOD;
   for(int i = 1;i <= n;i++)
   	cin >> a[i];
   dp[0][n] = 1;
   for(int i = 1;i <= n;i++)
   {
   	for(int j = n - i + 1;j <= n + i - 1;j++)
   	{
   		dp[i][j] = (dp[i][j] + p * dp[i - 1][j]) % MOD;
   		dp[i][j + a[n - i + 1]] = (dp[i][j + a[n - i + 1]] + ip * dp[i - 1][j]) % MOD;
   	}
   	dp[i][n] = 1;
   }
   for(int i = 0;i <= 2 * n;i++)
   	cout<<dp[n][i]<<" ";
   cout<<"\n";
   return 0;
} 

之缘千里(fate)##

缘分化成了一个长度为 2n 的合法括号串,这 2n 个字符(( 或 ))代表了 2n 个灵
魂,分成 n 组命运,每组恰好包含 2 个灵魂。
对于每组灵魂,由于它们相互连接,所以它们代表的字符需要相同。

现在,给定这 2n 个灵魂所在的命运组,求是否存在这样的合法括号串,如果存在,
则构造一组字典序最小的解,否则输出

标签:nxt,int,st,括号,2n,day1,MOD
From: https://www.cnblogs.com/zhaoziye/p/18450287

相关文章

  • Day10-JavaDoc
    Day10-JavaDocJavaDoc介绍JavaDoc:javadoc命令是用来生成自己API文档的。javadoc是一个工具,它可以读取源代码中的文档注释,并将其转换为格式规范的API文档。javadoc通过解析文档注释中的特定标记,如@author、@version、@since、@param、@return、@throws等,来提取关键信......
  • Day10-域名
    Day10-域名域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。例如“www.baidu.com”就是一个域名。它主要由几个部分组成:顶级域名(Top-levelDomain,TLD):如“.com”“.net”“.org”等,代表不同的域名类型或用途。......
  • Day10-包机制
    Day10-包机制包机制Java为更好地组织类而提供的机制,用于区别类名的命名空间。包相当于文件夹包语句的语法格式为:(定义包)packagepkg1[.pkg2[.pkg3...]];一般利用公司域名倒置作为包名。为了能够使用某一个包的成员,需要在Java程序中明确导入该包,使用“import”语句可完......
  • At_pakencamp_2023_day1_p sol
    题面给你两个序列\(A,B\),\(\forallu,v(u\not=v)\)之间边的权值为\(a_ua_v+b_ub_v\)。求最小生成树的边权和。原题目editorial朴素的想法考虑类似题目的做法,考虑每一次寻找最小的然后加入。发现这种思想和Boruvka比较相似。于是我们考虑Boruvka的方式来做。对现有的连......
  • day11[Lagent 自定义你的 Agent 智能体]
    环境配置开发机选择30%A100,镜像选择为Cuda12.2-conda。首先来为Lagent配置一个可用的环境。LagentWebDemo使用使用Lagent的WebDemo来体验InternLM2.5-7B-Chat的智能体能力先使用LMDeploy部署InternLM2.5-7B-Chat,并启动一个APIServer然后,我们在另一个......
  • DAY1-补题
    说句闲话:研究补题最好的方式是补完AK了,祝你们成功(滑稽此文章仅作为补题,题解等我理解完掉重新写。比赛情况不可饶恕的错误(滑稽赛时第一题看错题意,导致明明可以做掉的内容爆了,T2考虑到了正解,可一直在推式子和打表中间晃荡,遗憾。T3很好笑,没有删除调试语句,赛后删了重交过到了30pt......
  • 【牛客训练记录】2024牛客国庆集训派对day1
    https://ac.nowcoder.com/acm/contest/90188#question赛后反思好像没有,全场只做出来一题QAQJ题想在图上找到同色三角形,我们枚举至少是\(O(n^3)\)的,所以我们考虑容斥定理(?),去找异色三角形,因为只要保证一条边上两点颜色不一样,另找一点随便都可以,所以我们只要统计白色的点数,......
  • 代码随想录算法训练营Day17 | 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜
    目录654.最大二叉树617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树654.最大二叉树题目654.最大二叉树-力扣(LeetCode)给定一个不重复的整数数组nums。最大二叉树可以用下面的算法从nums递归地构建:创建一个根节点,其值为nums中的最大值。递归地在......
  • [雅礼集训 2017 Day1]市场 题解
    题目链接题目分析听说是很典的一道题,很明显难点在于除法下取整的操作。类似花神那一道题,但是由于有区间加,所以无法进行暴力修改。很明显暴力复杂度爆炸,考虑下取整带来的性质:对于一对相邻的数,很明显有\(\lfloor\frac{x-1}{k}\rfloor\le\lfloor\frac{x}{k}\rfloor-1\)。......
  • 代码随想录算法训练营Day16 | 513.找树左下角的值、112.路径总和、113.路径总和Ⅱ、10
    目录513.找树左下角的值112.路径总和113.路径总和Ⅱ106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树513.找树左下角的值题目513.找树左下角的值-力扣(LeetCode)给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。假......