/*
辗转相除,每次计算多出现了几个数。
*/
#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. Python接口测试之对MySQL的操作(六)

    本文章主要来说python对mysql数据库的基本操作,当然,前提是已经搭建了python环境和搭建了Mysql 数据库的环境,python操作mysql数据库提供了MySQLdb库,下载的地址为: ...

  2. 九度oj 题目1054:字符串内排序

    题目1054:字符串内排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:10985 解决:5869 题目描述: 输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串 ...

  3. 2015 湘潭大学程序设计比赛(Internet)部分题解,其中有一个题与NYOJ1057很像,贪心过~~

    仙剑奇侠传                 祝玩的开心                                                                          ...

  4. HDU 4960 (水dp)

    Another OCD Patient Problem Description Xiaoji is an OCD (obsessive-compulsive disorder) patient. Th ...

  5. POJ 2828 Buy Tickets (线段树 || 树状数组)

    题目大意 一些小朋友在排队,每次来一个人,第i个人会插到第x个人的后面.权值为y.保证x∈[0,i-1]. 按照最后的队伍顺序,依次输出每个人的权值. 解题分析 好气吖.本来是在做splay练习,然后 ...

  6. ubuntu14.04 配置网络

    ubuntu14.04 配置网络的练习 本文参考的资料: https://blog.csdn.net/liu782726344/article/details/52912797. 感谢作者的分享! 打 ...

  7. 通过ICursor对Table进行操作(添加、修改、删除)

    通过ICursor对Table进行操作(添加.修改.删除) 2010-03-16 16:07:37|  分类: 工作|举报|字号 订阅 来自:http://blog.163.com/liuyang12 ...

  8. Chromium硬件加速渲染的UI合成过程分析

    在Chromium中.Render端和WebGL端绘制出来的UI终于是通过Browser端显示在屏幕上的.换句话说.就是Browser端负责合成Render端和WebGL端的UI.这涉及到不同Open ...

  9. UNION(并集)集合运算

    在集合论中,两个集合(记为集合A和B)的并集是一个包含集合A和B中所有元素的集合.换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集. 在T-SQL中,UNION 集合运算可以将两个输入查 ...

  10. JavaScript 获得代码行号和脚本文件名

    如果你使用的是 V8 引擎,Chrome 和 Node.js 所用的,那么你可以利用 JavaScriptStackTraceApi 来获得行号信息,有两个 API: Error.captureSta ...