1.数学老师的报复

#include<iostream>
#include<cstdio>
using namespace std;
int cnt;
short int f[];
long long a,b,n;
long long qread(){
long long i=,j=;
char ch=getchar();
while(ch<''||ch>''){if(ch=='-')j=-;ch=getchar();}
while(ch<=''&&ch>='')i=i*+ch-'',ch=getchar();
return i*j;
}
int main(){
freopen("attack.in","r",stdin);freopen("attack.out","w",stdout);
// freopen("Cola.in","r",stdin);
a=qread();b=qread();n=qread();
cnt=;f[]=;f[]=;
while(){
cnt++;
f[cnt]=(a*f[cnt-]+b*f[cnt-])%;
if(f[cnt]==&&f[cnt-]==)break;
if(cnt==n)break;
}
if(n<=cnt){cout<<f[n];return ;}
cnt-=;
long long ans=n%cnt;
if(ans==)ans=cnt;
ans=f[ans];
cout<<ans;
}

95分 找循环节

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,aa,bb;
struct matrix{
ll a[][];
matrix(){memset(a,,sizeof(a));}
matrix(ll b[][]) {for(int i=;i<;i++)for(int j=;j<;j++)a[i][j]=b[i][j];}
matrix operator * (matrix b)
{
matrix ans;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
ans.a[i][j]=(ans.a[i][j]+a[i][k]*b.a[k][j])%;
ans.a[][]%=;
return ans;
}
}S,T; inline ll read()
{
ll 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()
{
freopen("attack.in","r",stdin);
freopen("attack.out","w",stdout);
while(scanf("%lld%lld%lld",&aa,&bb,&n)!=EOF)
{
n-=;
if(n==-) {printf("");return ;}
ll temp[][]={{aa,},{bb,}}; T=temp;
ll temp2[][]={{,},{,}}; S=temp2;
while(n)
{
if(n&) S=S*T;
T=T*T;
n>>=;
}
S.a[][]%=;
printf("%lld",S.a[][]);
}
return ;
}

100分 矩阵快速幂

2.物理和生物老师的战争

#include<iostream>
#include<cstdio>
using namespace std;
int T,n,m;
double ans;
int main(){
freopen("fseq.in","r",stdin);freopen("fseq.out","w",stdout);
// freopen("Cola.txt","r",stdin);
scanf("%d",&T);
while(T--){
ans=;
scanf("%d%d",&n,&m);
if(n<m){puts("0.000000");continue;}
double d=1.0/(n+1.0);
printf("%.6lf\n",1.0-m*d);
}
}

100分 打表找规律

3.化学竞赛的大奖

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#define maxn 20010
#ifdef WIN32
#define PLL "%I64d"
#else
#define PLL "%lld"
#endif
using namespace std;
int n,m,num,head[maxn],Num,Head[maxn];
int dfn[maxn],low[maxn],cnt,belong[maxn],gnum,st[maxn],top;
long long w[maxn];
bool in[maxn];
vector<int>g[maxn];
int fa[maxn][],dis[maxn][],dep[maxn];
struct node{int to,pre,v;}e[],E[];
void Insert(int from,int to,int v){e[++num].to=to;e[num].v=v;e[num].pre=head[from];head[from]=num;}
void Insert2(int from,int to,int v){E[++Num].to=to;E[Num].v=v;E[Num].pre=Head[from];Head[from]=Num;}
void Tarjan(int u,int father){
cnt++;
dfn[u]=low[u]=cnt;st[++top]=u;in[u]=;
for(int i=head[u];i;i=e[i].pre){
int v=e[i].to;
if(v==father)continue;
if(!dfn[v]){
Tarjan(v,u);
low[u]=min(low[u],low[v]);
}
else if(in[v])low[u]=min(low[u],dfn[v]);
}
if(dfn[u]==low[u]){
gnum++;
while(st[top]!=u){
int x=st[top];top--;
in[x]=;
belong[x]=gnum;
g[gnum].push_back(x);
}
in[u]=;
belong[u]=gnum;
g[gnum].push_back(u);
top--;
}
}
void dfs(int now,int father){
dep[now]=dep[father]+;
fa[now][]=father;
for(int i=Head[now];i;i=E[i].pre){
int to=E[i].to;
if(to==father)continue;
dis[to][]=E[i].v;
dfs(to,now);
}
}
long long lca(int a,int b){
long long res=;
if(dep[a]<dep[b])swap(a,b);
for(int i=;i>=;i--)
if(dep[fa[a][i]]>=dep[b])
res+=dis[a][i],a=fa[a][i];
if(a==b)return res;
for(int i=;i>=;i--)
if(fa[a][i]!=fa[b][i]){
res+=dis[a][i],res+=dis[b][i];
a=fa[a][i],b=fa[b][i];
}
res+=dis[a][]+dis[b][];
return res;
}
int main(){
// freopen("Cola.txt","r",stdin);
freopen("prize.in","r",stdin);freopen("prize.out","w",stdout);
scanf("%d%d",&n,&m);
int x,y,z;
for(int i=;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
Insert(x,y,z);
Insert(y,x,z);
}
for(int i=;i<=n;i++)
if(!dfn[i])
{Tarjan(i,i);}
for(int con=;con<=gnum;con++)//枚举每个国家
for(int i=;i<g[con].size();i++){//枚举这个国家里的每个城市
int from=g[con][i];
for(int j=head[from];j;j=e[j].pre){
int to=e[j].to;
if(belong[from]!=belong[to]){
Insert2(belong[to],belong[from],e[j].v);
}
}
}
dfs(,);
for(int j=;j<=;j++){
for(int i=;i<=gnum;i++){
fa[i][j]=fa[fa[i][j-]][j-];
dis[i][j]=dis[i][j-]+dis[fa[i][j-]][j-];
}
}
for(int i=;i<=gnum;i++){
long long ans=;
for(int j=;j<=gnum;j++){
long long now=lca(i,j);
ans=max(ans,now);
}
w[i]=ans;
}
for(int i=;i<=n;i++){
printf(PLL"\n",w[belong[i]]);
}
}

60分 Tarjan缩点+倍增

2017-11-7 NOIP模拟赛的更多相关文章

  1. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

  2. 11.7 NOIP模拟赛

    目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...

  3. 2017 10.25 NOIP模拟赛

    期望得分:100+40+100=240 实际得分:50+40+20=110 T1 start取了min没有用,w(゚Д゚)w    O(≧口≦)O T3 代码3个bug :数组开小了,一个细节没注意, ...

  4. 2017.5.27 NOIP模拟赛(hzwer2014-5-16 NOIP模拟赛)

    期望得分:100+100+60+30=290 实际得分:100+20+60+0=180 当务之急:提高一次正确率 Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一 ...

  5. NOIP模拟赛-2018.11.7

    NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...

  6. NOIP模拟赛-2018.11.6

    NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...

  7. NOIP模拟赛-2018.11.5

    NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...

  8. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  9. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  10. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

随机推荐

  1. Java之泛型深解

    泛型的内容确实很多,在上一篇Java之泛型浅解讲到了一些常用的泛型,但是还远远不够,上一篇的内容比较容易理解,这一篇我自己觉得更加难理解一些,因此,我还得想办法让它更加接地气更加容易理解,方便我和源宝 ...

  2. django学习笔记(四)表单

    1.若用户刷新一个包含POST表单的页面,那么请求将会重新发送造成重复. 这通常会造成非期望的结果,比如说重复的数据库记录.如果用户在POST表单之后被重定向至另外的页面,就不会造成重复的请求了.我们 ...

  3. Android之setContentView和LayoutInflater

    setContentView: 1.常用的构造函数: 1)setContentView(int layoutResID) 2)setContentView(View view) 3)setConten ...

  4. Codechef Union on Tree

    Codechef Union on Tree https://www.codechef.com/problems/BTREE 简要题意: 给你一棵树,\(Q\)次询问,每次给出一个点集和每个点的\(r ...

  5. BZOJ1799 [Ahoi2009]self 同类分布[数位DP]

    求出[a,b]中各位数字之和能整除原数的数的个数. 有困难的一道题.被迫看了题解:枚举每一个各位数字的和($<=162$),设计状态$f[len][sum][rest]$表示dp后面$len$位 ...

  6. 【Google】非下降数组

    转自九章算法公众号 题目描述 给出包含n个整数的数组,你的任务是检查它是否可以通过修改至多一个元素变成非下降的.一个非下降的数组array对于所有的i(1<=i<n)满足array[i-1 ...

  7. html事件绑定总结以及window.onload和document.body.onload事件

    //1 document.onkeydown如果多次监听同样的事件,那么前面的监听函数都会被最后一次的监听函数所覆盖. //如下所示: document.onkeydown = function(ev ...

  8. druid数据源的加密解密工具

    数据库得加密 先来一个网上大多数的教程吧,一个比较好的教程,如下. jar包版本:druid-1.0.13.jar 1. 加密,用以下命令将用户名和密码加密 cmd命令行执行 java -cp D:/ ...

  9. java基础知识(9)---异常

    异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...

  10. Spring Boot 专栏

    http://blog.csdn.net/column/details/spring-boot.html?&page=2