牛客白月赛12题解
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客白月赛12题解相关的知识,希望对你有一定的参考价值。
https://ac.nowcoder.com/acm/contest/392#question
目录
华华听月月唱歌【贪心】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
typedef long long int LL;
typedef pair<int,int> PII;
LL n,m;
vector<PII>ve;
int main(void)
cin>>n>>m;
while(m--)
int l,r; cin>>l>>r;
ve.push_back(l,r);
sort(ve.begin(),ve.end());
int ed=0,cnt=0;
for(int i=0;i<ve.size();i++)
int temp=0,j=i-1;
while(j+1<ve.size()&&ve[j+1].first<=ed+1) temp=max(ve[j+1].second,temp),j++;
cnt++,ed=temp,i=j;
if(temp==0)
puts("-1");
return 0;
if(ed>=n) break;
cout<<cnt<<endl;
return 0;
华华教月月做数学【快速幂】
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
__int128 qsm(__int128 a,__int128 b,__int128 p)
__int128 sum=1;
a=a%p;
while(b)
if(b&1) sum=sum*a%p;
b>>=1;
a=(a*a)%p;
return sum%p;
template <typename T>
inline T read()
//声明 template 类, 要求提供输入的类型 T, 并以此类型定义内联函数 read()
T sum = 0, fl = 1; // 将 sum,fl 和 ch 以输入的类型定义
int ch = getchar();
for (; !isdigit(ch); ch = getchar())
if (ch == '-') fl = -1;
for (; isdigit(ch); ch = getchar()) sum = sum * 10 + ch - '0';
return sum * fl;
template <typename T>
inline void write(T x)
static int sta[35];
int top = 0;
do
sta[top++] = x % 10, x /= 10;
while (x);
while (top) putchar(sta[--top] + 48); // 48 是 '0'
int main(void)
int t; cin>>t;
while(t--)
__int128 a,b,p;
a=read<__int128>();
b=read<__int128>();
p=read<__int128>();
write(qsm(a,b,p));
cout<<endl;
return 0;
以上是关于牛客白月赛12题解的主要内容,如果未能解决你的问题,请参考以下文章