/*
辗转相除,每次计算多出现了几个数。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath> #define ll long long using namespace std;
ll a1,a2,a3,a4,ans; 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;
} ll gcd(ll a,ll b)
{
if(!b) return a;
ans+=ceil(a/b);
return gcd(b,a%b);
} int main()
{
freopen("seq.in","r",stdin);
freopen("seq.out","w",stdout);
ll tmp;
a1=read();a2=read();
if(a1<a2) a1^=a2,a2^=a1,a1^=a2;
ll g=gcd(a1,a2);
printf("%I64d\n",ans+);
return ;
}

#include<bits/stdc++.h>
#define N 1010
#define M 40010
using namespace std;
int front[N],cap[M],to[M],nextt[M],dis[N],mx,mn,ans,tot,u,v,w,n,m,now,t;
int siz[];
int sum[];
bool inque[N];
inline void in(int &x)
{
x=;
char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch))
{
x=x*+ch-'';
ch=getchar();
}
}
inline void add(int u,int v,int w)
{
to[++tot]=v;
nextt[tot]=front[u];
front[u]=tot;
cap[tot]=w;
to[++tot]=u;
nextt[tot]=front[v];
front[v]=tot;
cap[tot]=w;
}
queue<int>q;
void spfa(int src)
{
mx=;
mn=0x3f3f3f3f;
memset(dis,-,sizeof(dis));
memset(inque,,sizeof(inque));
memset(siz,,sizeof(siz));
dis[src]=0x3f3f3f3f;
q.push(src);
while(!q.empty())
{
now=q.front();
q.pop();
inque[now]=;
for(int i=front[now]; i; i=nextt[i])
{
t=to[i];
int val=min(dis[now],cap[i]);
if(dis[t]<val)
{
siz[val]++;
if(dis[t]!=-) siz[dis[t]]--;
dis[t]=val;
if(!inque[t])
{
inque[t]=;
q.push(t);
}
}
}
}
for(int i=; i>=; i--) sum[i]=sum[i+]+siz[i];
for(int i=; i<=; i++)
{
ans+=(sum[i]-sum[i+])*(sum[i]-sum[i+]);
}
ans+=sum[]*sum[]; }
int main()
{
freopen("car.in","r",stdin);
freopen("car.out","w",stdout);
in(n);
in(m);
for(int i=; i<=m; i++)
{
in(u);in(v);in(w);
add(u,v,w);
}
for(int i=; i<=n; i++)
{
ans=;
spfa(i);
printf("%d ",ans);
}
}

30暴力spfa

取数

/*
30暴力dp
*/
#include<iostream>
#include<cstdio>
#include<cstring> #define N 3001
#define ll long long using namespace std;
int n,m,k,cnt;
ll ans;
ll f[N][N],a[N]; 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()
{
n=read();m=read();k=read();
memset(f,,sizeof f);ans=0x3f3f3f3f3f;
for(int i=;i<=n;i++) a[i]=read();
for(int i=;i<=n;i++) f[i][]=min(f[i-][],a[i]);
for(int i=m;i<=n;i++)
for(int j=;j<=k;j++)
f[i][j]=min(f[i][j],min(f[i-][j],f[i-m][j-]+a[i]));
for(int i=k;i<=n;i++) ans=min(ans,f[i][k]);
printf("%I64d\n",ans);
}

清北考前刷题day4下午好的更多相关文章

  1. 清北考前刷题day1下午好

    水题(water) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽 ...

  2. 清北考前刷题da7下午好

    三向城 /* 原图一定是一棵完全二叉树. 根节点是x,左节点是x*2,右节点是x*2+1 转化为二进制往左右走就很明显了. */ #include<iostream> #include&l ...

  3. 清北考前刷题day3下午好

    /* 可以并查集维护 可以发现,某个联通快出现大于等于2个环,一定无法分配. 有解要么一个环,要么没有环. 一个环时答案等于点数乘2(顺时针或逆时针). 没有环是树,对于一个n个点的树,方案一定有n种 ...

  4. 清北考前刷题day6下午好

    /* 贪心 负数一定不取 枚举最高位是1 且答案取为0的 位置, 更新答案. */ #include<iostream> #include<cstdio> #include&l ...

  5. 清北考前刷题da5下午好

    /* (4,1)*(3,1)*(2,1)的话1变成2然后一直是2 2变成1然后变成3 3变成1然后变成4 4变成1 */ #include<iostream> #include<cs ...

  6. 清北考前刷题day2下午好

    #include<iostream> #include<cstdio> #include<cstring> #include<stack> #defin ...

  7. 清北考前刷题day4早安

      LI /* 没有考虑次大值有大于一个的情况 */ #include<iostream> #include<cstdio> #include<cstring> # ...

  8. 清北考前刷题day7早安

  9. 清北考前刷题day6早安

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #d ...

随机推荐

  1. Github ==〉本地(克隆)

    [情景] 新员工入职后,一般会将项目下载到本地. [下载(克隆)] 命令 git clone url地址 示例

  2. 【转】Java IO流 overview

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  3. * SPOJ PGCD Primes in GCD Table (需要自己推线性筛函数,好题)

    题目大意: 给定n,m,求有多少组(a,b) 0<a<=n , 0<b<=m , 使得gcd(a,b)= p , p是一个素数 这里本来利用枚举一个个素数,然后利用莫比乌斯反演 ...

  4. DP 简单题目练习

    ZOJ 1234 这道题目我表示也还不是特别能理解....还是太菜了T T 从后往前思考,因为只要后面有多的数在,那么C肯定是存在的,只要考虑是否把前两个数加在一起作为badness值这样两种情况来考 ...

  5. HDU——2647 Reward

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. codevs——1009 产生数

    1009 产生数 2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给出一个 ...

  7. Java并发包——线程通信

    Java并发包——线程通信 摘要:本文主要学习了Java并发包里有关线程通信的一些知识. 部分内容来自以下博客: https://www.cnblogs.com/skywang12345/p/3496 ...

  8. I/O---BufferedInputStream及相关类介绍

    关于BufferedInputStream 是java提供的具有缓存作用的字节输入流.与之对应的还有BufferedOutStream 和 BufferedRead 和BufferedWriter 这 ...

  9. 【.Net 学习系列】-- 反射的简单用法

    新建两个项目:类库(Model)和控制台应用程序(ReflectTest). 在[Model]中添加一个类[User]: namespace Model { public class User { p ...

  10. JSP自己定义标签入门实例具体解释

    JSP自己定义标签主要能用到的两个包 javax.servlet.jsp.*;javax.servlet.jsp.tagext.*; 自己定义标签<userInfo:showUserInfo/& ...