/*
有循环节
*/
#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. C51 静态数码管 个人笔记

    显示器介绍 单片机系统中常用的显示器有: LED(Light Emitting Diode):发光二极管显示器 LCD(Liquid Crystal Display)液晶显示器 TFT 液晶显示器等. ...

  2. Fiddler基本用法:手机抓包

    from:https://blog.csdn.net/gld824125233/article/details/52588275 电脑最好是笔记本,这样能和手机保持统一局域网内:其他不多说,直接说步骤 ...

  3. JavaEE JDBC PreparedStatement

    PreparedStatement @author ixenos PreparedStatement工作原理 注意:虽然mysql不支持PreparedStatement优化,但依然有预编译的实现! ...

  4. [Wf2015]Tours

    [Wf2015]Tours 题目 给定一张n个点m条边的无向图,你需要选择一个颜色种类数k,然后用这k种颜色给每条边染色,要求对于图中任意一个简单环,每种颜色的边的数量都相同,求所有可行的k INPU ...

  5. json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别

    JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...

  6. EasyUI单击行数据时动态编写editor

    $.extend($.fn.treegrid.methods, { addEditor: function (jq, param) { if (param instanceof Array) { $. ...

  7. onclick方法和$("").click()有不一样的地方

    话说是这样的...昨天写了一个文件上传的功能,是这样的,用fastdfs上传成功后会有一个url... 然后我自己测试上传,包括在文件服务器里都能找到.. 然后就自己打包发版了,都很正常也没报错... ...

  8. Python基础之 一列表

    列表模块:listlen(list):列表元素个数max(list):列表元素最大值min(list):列表元素最小值list(seq):将元组转为列表list.append(obj):列表末尾添加新 ...

  9. Eclipse编辑YAML插件-YEdit

    官网:https://github.com/oyse/yedit 离线版本:(链接: https://pan.baidu.com/s/1b1j2gQ 密码: wyyb) 安装方法:直接复制JAR包到P ...

  10. Google Chrome Developer Tools

    原文:https://www.oschina.net/p/chromedevtools Google发布了Google Chrome Developer Tools,这是一系列面向Chrome开发者的 ...