/*
有循环节
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 10000000
using namespace std; int a,b,n,T;
int f[maxn]; inline int read()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
bool flag=false;
a=read();b=read();n=read();
f[]=;f[]=;f[]=(a+b)%;
for(int i=;i<=n;i++)
{
f[i]=(a*f[i-]+b*f[i-])%;
if(f[i-]==&&f[i]==) {flag=true;T=i-;break;}
}
if(!flag) printf("%d",f[n]);
else
{
int pos=n%T;if(pos==) pos=T;
printf("%d",f[pos]);
}
return ;
}

/*
转化为二维平面上
左下角走到右上角不经过对角线的路径条数
卡特兰数列
*/
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 100000000
#define ll long long
#define RG register int
#define rep(i,a,b) for(RG i=a;i<=b;i++)
#define per(i,a,b) for(RG i=a;i>=b;i--)
using namespace std;
int T;
double n,m;
inline int read()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
T=read();
while(T--)
{
n=read();m=read();
if(n<m) {puts("0.000000");continue;}
double _1=n-m+,_2=n+;
printf("%.6lf\n",_1/_2);
}
return ;
}

/*
Tarjan缩点后是一棵树
求树的直径并维护每个点到直径两端点的最大值。
三遍dfs即可
*/
#include<bits/stdc++.h>
#define maxn 20005
#define maxm 200005
using namespace std; int n,m,id,dfn[maxn],low[maxn],head[maxn],head2[maxn],cnt;
int dis[maxn],dis1[maxn],mx=,root;
int belong[maxn],belnum;
bool vis[maxn];
stack<int> stk;
struct Edge{
int u,v,val,next;
}edge[maxm<<],e[maxm<<]; inline int read()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
namespace Tarjan
{ inline void add(int u,int v,int val)
{
edge[++cnt].v=v;
edge[cnt].u=u;
edge[cnt].val=val;
edge[cnt].next=head[u];
head[u]=cnt;
} inline void tarjan(int u,int fa)
{
dfn[u]=low[u]=++id;
vis[u]=;
stk.push(u);
for(int i=head[u];i!=-;i=edge[i].next)
{
int v=edge[i].v;
if(!dfn[v])
{
tarjan(v,u);
low[u]=min(low[u],low[v]);
}
else if(vis[v]&&v!=fa)
{
low[u]=min(low[u],dfn[v]);
}
}
if(dfn[u]==low[u])
{
belnum++;
int temp;
do{
temp=stk.top();
belong[temp]=belnum;
vis[temp]=;
stk.pop();
}while(temp!=u);
}
} inline void solve1()
{
memset(head,-,sizeof(head));
for(int i=,u,v,val;i<=m;i++)
{
u=read();v=read();val=read();
add(u,v,val);add(v,u,val);
}
for(int i=;i<=n;i++)
{
if(!dfn[i]) tarjan(i,);
}
} } namespace LP
{ inline void Add(int u,int v,int val)
{
e[++cnt].v=v;
e[cnt].val=val;
e[cnt].next=head2[u];
head2[u]=cnt;
} void dfs1(int u,int fa)
{
for(int i=head2[u];i!=-;i=e[i].next)
{
int v=e[i].v;
if(v==fa) continue;
dis[v]=dis[u]+e[i].val;
if(dis[v]>mx) mx=dis[v],root=v;
dfs1(v,u);
}
} void dfs2(int u,int fa)
{
for(int i=head2[u];i!=-;i=e[i].next)
{
int v=e[i].v;
if(v==fa) continue;
dis1[v]=dis1[u]+e[i].val;
dfs2(v,u);
}
} inline void solve2()
{
cnt=;
memset(head2,-,sizeof(head2));
for(int i=;i<=n;i++)
for(int j=head[i];j!=-;j=edge[j].next)
{
if(belong[i]!=belong[edge[j].v])
Add(belong[i],belong[edge[j].v],edge[j].val);
}
dfs1(,-);
mx=;memset(dis,,sizeof(dis));
dfs1(root,-);
mx=;
dfs2(root,-);
for(int i=;i<=n;i++)
printf("%d\n",max(dis[belong[i]],dis1[belong[i]]));
} }
int main()
{
freopen("prize.in","r",stdin);
freopen("prize.out","w",stdout);
n=read();m=read();
Tarjan::solve1();
LP::solve2();
return ;
}

11.7NOIP模拟题的更多相关文章

  1. 11.7NOIP模拟赛解题报告

    心路历程 预计得分:\(50 + 100 + 100\) 实际得分:\(50 + 100 +100\) T2 T3两道数据结构题美滋滋,然而写完就过去\(3h\)美滋滋 T1数学题学弟们都会做Orzz ...

  2. 11.7noip模拟赛

     题解:广义斐波那契数列 矩阵乘法 #include<iostream> #include<cstdio> #include<cstring> #define LL ...

  3. 10.11 NOIP模拟题(1)

    /* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...

  4. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  5. poj 1888 Crossword Answers 模拟题

    Crossword Answers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 869   Accepted: 405 D ...

  6. CodeForces - 427B (模拟题)

    Prison Transfer Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  7. 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中

    题目名称 正确答案  序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...

  8. poj1472[模拟题]

    Instant Complexity Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2017   Accepted: 698 ...

  9. csu 1312 榜单(模拟题)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1312 1312: 榜单 Time Limit: 1 Sec  Memory Limit: 128 ...

随机推荐

  1. linux-NMON监控

  2. 如何抓取崩溃的log日志

    4.手机录屏工具的推荐 Andriod:录屏大师,易录屏等等. iOS:AirPlayer,iTools. 5.如何抓取崩溃的log日志? android闪退获取日志方法: 1.下载adb工具包 2. ...

  3. 【计算几何+极角排序+爆ll】E. Convex

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/E [题意] 给定n个点的坐标,可以选择其中的四个点构造凸四边形,问最多能构造多少 ...

  4. spring security 5.0 密码未加密报错

    使用spring security5.0后,配置文件中直接写普通的密码如:123456,会报错: java.lang.IllegalArgumentException: There is no Pas ...

  5. 【intellij】intellij idea 建立与src级别的目录

    在使用三大框架时,通常会把配置文件放在自己新建的config文件夹里,以便编程.在 myeclipse里新建的config文件夹是Source Folder属性的 这样他的级别适合src一个级别,但是 ...

  6. Linux下汇编语言学习笔记46 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  7. Redis2019年3.22

    redis缓存技术学习 一. redis基础配置 1. redis简介 1.1 redis 是c语言编写的一个缓存服务器, 是一个内存版本的nosql非关系型数据,大概11w/s访问处理. 数据都在本 ...

  8. DTRACE简介之完结篇3

    https://blogs.oracle.com/swan/entry/dtrace%E7%AE%80%E4%BB%8B_3 DTRACE简介之完结篇 By samwan on 四月 13, 2007 ...

  9. 如何使用python书写守护进程?daemon、python-daemon

    可以参考的supervisor实现:https://github.com/Supervisor/supervisor:http://supervisord.org/configuration.html ...

  10. hdu5371 Hotaru&#39;s problem

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...