P4144 大河的序列(贪心)

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4144 大河的序列(贪心)相关的知识,希望对你有一定的参考价值。

P4144 大河的序列(贪心)

结论是:选择最大的那个数。

注意 p = 1 p=1 p=1的情况。

// Problem: P4144 大河的序列
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P4144
// Memory Limit: 125 MB
// Time Limit: 1000 ms
// Date: 2022-01-08 11:56:08
// --------by Herio--------

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull; 
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
const int hashmod[4] = 402653189,805306457,1610612741,998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define PLL pair<ll,ll>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define ios ios::sync_with_stdio(false),cin.tie(nullptr) 
void Print(int *a,int n)
	for(int i=1;i<n;i++)
		printf("%d ",a[i]);
	printf("%d\\n",a[n]); 

template <typename T>		//x=max(x,y)  x=min(x,y)
void cmx(T &x,T y)
	if(x<y) x=y;

template <typename T>
void cmn(T &x,T y)
	if(x>y) x=y;

ll ksm(ll a,ll n,ll m=mod)
	ll ans=1;
	while(n)
		if(n&1) ans=ans*a%m;
		a=a*a%m;
		n>>=1;
	
	return ans;

int main()
	int n,b,p;
	scanf("%d%d%d",&n,&b,&p);
	int ans = 0;
	while(n--)
		int x;scanf("%d",&x);
		cmx(ans,x);
	
	ans<<=1;
	printf("%d\\n",ksm(ans+233,b,p)%p);
	return 0;


以上是关于P4144 大河的序列(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

贪心算法:摆动序列

最长递增子序列(LIS) 贪心+二分详解O(nlogn)

映射-电视剧:《大江大河》

[贪心] aw3686. 移动序列(贪心+模拟+思维)

最长上升子序列(贪心+二分)

LIS 最长上升子序列问题(动态规划贪心+二分)