太菜了,刷刷NOIP题玩玩。

今天的题好像以前有做过(雾)

A.

#include<bits/stdc++.h>
typedef long long ll;
int n,q,phi,p[],cnt;
ll x;
inline ll sqr(ll x){return x*x;}
ll fpow(ll x,ll p){
ll ans=;
for(;p;p>>=,x=x*x%n)if(p&)ans=(ans*x)%n;
return ans;
}
inline ll read(){
ll f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();q=read();phi=n;int qwq=n;
for(int i=;i*i<=n;i++){
if(n%i==)phi=phi/i*(i-);
while(n%i==)n/=i;
}
if(n!=)phi=phi/n*(n-);
p[cnt=]=;n=qwq;
for(int i=;i*i<=n;i++)if(phi%i==){p[++cnt]=i;if(i*i!=phi)p[++cnt]=phi/i;}
while(q--){
x=read();char ch='';
if(fpow(x,phi)!=){putchar('');continue;}
for(int j=;j<=cnt;j++)if(fpow(x,p[j])==){ch='';break;}
putchar(ch);
}
}

B.

#include<bits/stdc++.h>
#define N 100010
const int yql=1e9+;
typedef long long ll;
using namespace std;
struct Edge{int u,v,next;}G[*N];
int tot=,head[*N],fa[N],n;
ll ans,w[N],sumv[N];
void addedge(int u,int v){
G[++tot].u=u;G[tot].v=v;G[tot].next=head[u];head[u]=tot;
G[++tot].u=v;G[tot].v=u;G[tot].next=head[v];head[v]=tot;
}
inline ll read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
void dfs(int u,int f){
for(int i=head[u];i;i=G[i].next){
int v=G[i].v;if(v==f)continue;
fa[v]=u;dfs(v,u);
sumv[u]=(sumv[u]+sumv[v])%yql;
}
ll tmp=(sumv[u]*2LL+w[u])%yql*w[u]%yql;
for(int i=head[u];i;i=G[i].next){
int v=G[i].v;if(v==f)continue;
tmp=(tmp+(sumv[u]+yql-sumv[v])%yql*sumv[v])%yql;
}
//printf("%lld\n",tmp);
ans=(ans+tmp*w[u])%yql;
sumv[u]=(sumv[u]+w[u])%yql;
}
int main(){
n=read();w[]=read();
for(int i=;i<=n;i++){
int u=read();w[i]=read();
i[w]%=yql;
addedge(u,i);
}
dfs(,);
//for(int i=1;i<=n;i++)printf("%lld ",sumv[i]);puts("");
printf("%lld\n",ans%yql);
return ;
}

C.

#include<bits/stdc++.h>
const int N=;
using namespace std;
int n,m,fa[N],cnt=;
map<string,int> mps;
struct Edge{int u,v,w;}G[N];
char s[],p[];
bool operator <(Edge x,Edge y){return x.w<y.w;}
inline int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();m=read();
for(int i=;i<=m;i++){
scanf("%d%s%s",&G[i].w,s,p);
string qwq=string(s);
if(mps[qwq]==)mps[qwq]=++cnt;
G[i].u=mps[qwq];
qwq=string(p);
if(mps[qwq]==)mps[qwq]=++cnt;
G[i].v=mps[qwq];
}
for(int i=;i<=cnt;i++)fa[i]=i;
sort(G+,G+m+);
for(int i=;i<=m&&n;i++){
int x=find(G[i].u),y=find(G[i].v);
if(x!=y){fa[x]=y;--n;printf("%d\n",G[i].w);}
}
for(int i=;i<=n;i++)puts("INF");
}

【jzoj2017.8.21提高组A】的更多相关文章

  1. JZOJ 11.21 提高B组反思

    JZOJ 11.21 提高B组反思 T1 第二类斯特林数 直接套公式 \(S(i,j)=S(i-1,j-1)+S(i-1,j)*j\) 由于过大,\(unsigned\ long\ long\)都存不 ...

  2. [NOIP2015] 提高组 洛谷P2615 神奇的幻方

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  3. NOIP2008提高组(前三题) -SilverN

    此处为前三题,第四题将单独发布 火柴棒等式 题目描述 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0 ...

  4. [NOIP2011] 提高组 洛谷P1315 观光公交

    题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...

  5. NOIP 2015提高组复赛

    神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第 ...

  6. 洛谷-神奇的幻方-NOIP2015提高组复赛

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  7. 洛谷 P2678 & [NOIP2015提高组] 跳石头

    题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...

  8. 【二分查找】 跳石头NOIP2015提高组 D2T1

    [二分查找]跳石头NOIP2015提高组 D2T1 >>>>题目 [题目描述] 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石 ...

  9. 2017清北学堂(提高组精英班)集训笔记——动态规划Part3

    现在是晚上十二点半,好累(无奈脸),接着给各位——也是给自己,更新笔记吧~ 序列型状态划分: 经典例题:乘积最大(Luogu 1018) * 设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它 ...

随机推荐

  1. 【bzoj2834】回家的路 分层图最短路

    题目描述 输入 输出 样例输入 2 1 1 2 1 1 2 2 样例输出 5 题解 分层图最短路 dis[i][0]表示到i为横向时起点到i的最短路,dis[i][1]表示到i为纵向时起点到i的最短路 ...

  2. java动态代理(JDK和CGLIB)笔记

    动态代理:为一堆interface或类的实现提供统一的执行通道,从含义上就像局域网电脑通过代理上网一样,走统一的通道,代理控制通道,自然可以在通道里加上自定义实现,例如像AOP切面,日志等. JDK的 ...

  3. [洛谷P5107]能量采集

    题目大意:有一张$n(n\leqslant50)$个点$m(m\leqslant n(n-1))$条边的有向图,每个点还有一个自环,每个点有一个权值.每一秒钟,每个点的权值会等分成出边个数,流向出边. ...

  4. bzoj 1797: [Ahoi2009]Mincut 最小割 (网络流)

    太神了直接看了hzwer的题解,有个新认识,一条路径上满流的一定是这条路径上所有边的最小值. type arr=record toward,next,cap,from:longint; end; co ...

  5. 重拾C#教程:变量

    一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局.范围内的值可以存储在内存中,可以对变量进行一系列操作. 我们已经讨论了各种数据类 ...

  6. HDU1007:Quoit Design——题解

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 题目大意:给n个点,求点对最短距离/2. —————————————————————— 平面分治裸题. 暂 ...

  7. NOIP2017 列队——平衡树

    平衡树蒟蒻,敲了半天. 其实思路很简单,就是把许多个人合并成一个区间.必要的时候再拆开.(是不是和这个题的动态开点线段树有异曲同工之妙?) 每次操作最多多出来6个点. 理论上时间复杂度是nlogn,空 ...

  8. windows下vue项目启动步骤

    原创:https://blog.csdn.net/qq_27680317/article/details/71123051?locationNum=10&fps=1 不是ngnix服务器是,忽 ...

  9. Java中equals和==的区别?为什么重写equals方法后,一定要重写hashCode方法?

    首先明确一点,equals是方法,==是操作符. 1. 如果比较的是基本数据类型: 只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的. 2. 如果比较的是引用类 ...

  10. sublime text3常用快捷键

    Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行( ...