CSP-S模版-基础
模版来源于洛谷CSP-S模版赛
P10815 【模板】快速读入
题意
快读板子,没什么说的
代码
#include<bits/stdc++.h>
#define int long long
#define ll long long
#define int128 __int128
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3fll
#define finf 0xcfcfcfcf
#define FINF 0xcfcfcfcfcfcfcfcf
#define endl '\n'
#define lowbit(x) (x & -x)
#define ls (u<<1)
#define rs (u<<1|1)
#define eps 1e-9
#define mem(x) memset(x,0x3f,sizeof(x));
#define fmem(x) memset(x,0xcf,sizeof(x));
using namespace std;
const int maxn=2e5+5;
const int maxm=1e6;
const int mod=998244353;
int n,m,x,y,t;
int pw(int a,int b){
int ans=1;
while(b){
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
template <typename T>
inline void read(T &X){
X=0;int w=0; char ch=0;
while(!isdigit(ch)) {w|=ch=='-';ch=getchar_unlocked();}
while(isdigit(ch)) X=X*10+(ch^48),ch=getchar_unlocked();
if(w) X=-X;
}
signed main()
{
read(n);
int sum=0;
for(int i=1;i<=n;i++)read(m),sum+=m;
cout<<sum<<endl;
return 0;
}
实际上考场用到的概率堪比滚木
有个锤锤用啊
B3694 【模板】数列离散化
题意
求出一个数在数组中的排名
做法
找出比它小的数的个数,这个可以用排序+二分实现
记得去重,但实际上平时用离散化时不去重好像没啥关系,毕竟离散化之后最大就是n
代码
#include<bits/stdc++.h>
#define int long long
#define ll long long
#define int128 __int128
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3fll
#define finf 0xcfcfcfcf
#define FINF 0xcfcfcfcfcfcfcfcf
#define endl '\n'
#define lowbit(x) (x & -x)
#define ls (u<<1)
#define rs (u<<1|1)
#define eps 1e-9
#define mem(x) memset(x,0x3f,sizeof(x));
#define fmem(x) memset(x,0xcf,sizeof(x));
using namespace std;
const int maxn=2e5+5;
const int maxm=1e6;
const int mod=998244353;
int n,m,x,y,t;
int pw(int a,int b){
int ans=1;
while(b){
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
int a[maxn];
int b[maxn];
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)b[i]=a[i];
sort(b+1,b+n+1);
int k=unique(b+1,b+n+1)-b-1;
for(int i=1;i<=n;i++){
int y=lower_bound(b+1,b+k+1,a[i])-b;
cout<<y<<" ";
}
cout<<endl;
}
return 0;
}

浙公网安备 33010602011771号