1. /*
  2. 辗转相除,每次计算多出现了几个数。
  3. */
  4. #include<iostream>
  5. #include<cstdio>
  6. #include<cstring>
  7. #include<cmath>
  8.  
  9. #define ll long long
  10.  
  11. using namespace std;
  12. ll a1,a2,a3,a4,ans;
  13.  
  14. inline ll read()
  15. {
  16. ll x=,f=;char c=getchar();
  17. while(c>''||c<''){if(c=='-')f=-;c=getchar();}
  18. while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
  19. return x*f;
  20. }
  21.  
  22. ll gcd(ll a,ll b)
  23. {
  24. if(!b) return a;
  25. ans+=ceil(a/b);
  26. return gcd(b,a%b);
  27. }
  28.  
  29. int main()
  30. {
  31. freopen("seq.in","r",stdin);
  32. freopen("seq.out","w",stdout);
  33. ll tmp;
  34. a1=read();a2=read();
  35. if(a1<a2) a1^=a2,a2^=a1,a1^=a2;
  36. ll g=gcd(a1,a2);
  37. printf("%I64d\n",ans+);
  38. return ;
  39. }

  1. #include<bits/stdc++.h>
  2. #define N 1010
  3. #define M 40010
  4. using namespace std;
  5. int front[N],cap[M],to[M],nextt[M],dis[N],mx,mn,ans,tot,u,v,w,n,m,now,t;
  6. int siz[];
  7. int sum[];
  8. bool inque[N];
  9. inline void in(int &x)
  10. {
  11. x=;
  12. char ch=getchar();
  13. while(!isdigit(ch)) ch=getchar();
  14. while(isdigit(ch))
  15. {
  16. x=x*+ch-'';
  17. ch=getchar();
  18. }
  19. }
  20. inline void add(int u,int v,int w)
  21. {
  22. to[++tot]=v;
  23. nextt[tot]=front[u];
  24. front[u]=tot;
  25. cap[tot]=w;
  26. to[++tot]=u;
  27. nextt[tot]=front[v];
  28. front[v]=tot;
  29. cap[tot]=w;
  30. }
  31. queue<int>q;
  32. void spfa(int src)
  33. {
  34. mx=;
  35. mn=0x3f3f3f3f;
  36. memset(dis,-,sizeof(dis));
  37. memset(inque,,sizeof(inque));
  38. memset(siz,,sizeof(siz));
  39. dis[src]=0x3f3f3f3f;
  40. q.push(src);
  41. while(!q.empty())
  42. {
  43. now=q.front();
  44. q.pop();
  45. inque[now]=;
  46. for(int i=front[now]; i; i=nextt[i])
  47. {
  48. t=to[i];
  49. int val=min(dis[now],cap[i]);
  50. if(dis[t]<val)
  51. {
  52. siz[val]++;
  53. if(dis[t]!=-) siz[dis[t]]--;
  54. dis[t]=val;
  55. if(!inque[t])
  56. {
  57. inque[t]=;
  58. q.push(t);
  59. }
  60. }
  61. }
  62. }
  63. for(int i=; i>=; i--) sum[i]=sum[i+]+siz[i];
  64. for(int i=; i<=; i++)
  65. {
  66. ans+=(sum[i]-sum[i+])*(sum[i]-sum[i+]);
  67. }
  68. ans+=sum[]*sum[];
  69.  
  70. }
  71. int main()
  72. {
  73. freopen("car.in","r",stdin);
  74. freopen("car.out","w",stdout);
  75. in(n);
  76. in(m);
  77. for(int i=; i<=m; i++)
  78. {
  79. in(u);in(v);in(w);
  80. add(u,v,w);
  81. }
  82. for(int i=; i<=n; i++)
  83. {
  84. ans=;
  85. spfa(i);
  86. printf("%d ",ans);
  87. }
  88. }

30暴力spfa

取数

  1. /*
  2. 30暴力dp
  3. */
  4. #include<iostream>
  5. #include<cstdio>
  6. #include<cstring>
  7.  
  8. #define N 3001
  9. #define ll long long
  10.  
  11. using namespace std;
  12. int n,m,k,cnt;
  13. ll ans;
  14. ll f[N][N],a[N];
  15.  
  16. inline int read()
  17. {
  18. int x=,f=;char c=getchar();
  19. while(c>''||c<''){if(c=='-')f=-;c=getchar();}
  20. while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
  21. return x*f;
  22. }
  23.  
  24. int main()
  25. {
  26. n=read();m=read();k=read();
  27. memset(f,,sizeof f);ans=0x3f3f3f3f3f;
  28. for(int i=;i<=n;i++) a[i]=read();
  29. for(int i=;i<=n;i++) f[i][]=min(f[i-][],a[i]);
  30. for(int i=m;i<=n;i++)
  31. for(int j=;j<=k;j++)
  32. f[i][j]=min(f[i][j],min(f[i-][j],f[i-m][j-]+a[i]));
  33. for(int i=k;i<=n;i++) ans=min(ans,f[i][k]);
  34. printf("%I64d\n",ans);
  35. }

清北考前刷题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. 洛谷P1615 西游记公司

    题目背景 一道极其无厘头的题目 题目描述 事情是这样的:西游记中的孙沙猪(孙杀猪)三徒弟在西天取经之后开始进入厦门大学经贸系学习经济,在1个小时的学习后,他们用暴力手段毕业了.然后,他们创办了三个公司 ...

  2. POJ 3684_Physics Experiment

    题意: 若干球最初从高到低排列,依次落下. 球与地面碰撞,速度不变方向相反,球之间碰撞, 交换速度和方向.问某一时刻各个球的高度. 分析: 把球之间的碰撞看成是擦肩而过,但是由于半径的存在,最后每个球 ...

  3. Count the Colors-ZOJ1610(线段树区间求)

    Painting some colored segments on a line, some previously painted segments may be covered by some th ...

  4. 2017-10-03-morning

    #include <algorithm> #include <cstring> #include <cstdio> inline void read(int &am ...

  5. linux 硬件中断调节

    什么是中断 中断interrupts是指硬件主动的来告诉CPU去做某些事情.比如网卡收到数据后可能主动的告诉CPU来处理自己接受到的数据,键盘有了按键输入后会主动告知CPU来读取输入. 硬件主动的打扰 ...

  6. 根据身份证号,取得行政区划的Javascript实现

    原文:http://www.cnblogs.com/baibaluo/archive/2011/06/03/2071255.html#2585076 项目里需要一个根据身份证号,取得发证地行政区划的的 ...

  7. PopupMenu的演示样例

    弹出菜单是停靠在一个View上的一个模式菜单. 假设View对象下方有空间,那么弹出菜单将显示在停靠对象的下方,否则会显示在上方. 这是很实用的: 源代码地址:http://download.csdn ...

  8. 请问这个「 (?<=<(\w+)>).*(?=<\/\1>) 」正则表达式是什么意思呢?

    问题:https://www.zhihu.com/question/26480812  (?<=<(\w+)>).*(?=<\/\1>) ---------------- ...

  9. centos7容量扩充

    新买的2T 绿盘到货了~~好开心的说~但毕竟是第一次安装,事先还是在网上搜索了很多资料才敢动手,下面就开始啦~ 环境:Centos7.dell服务器.2T容量绿盘 1.硬盘连接好之后,开机先使用fdi ...

  10. 爸爸和儿子的故事带你理解java线程

    今天回想线程方面的知识,发现一个非常有意思的小程序.是用来说明多线程的以下贴出来分享下,对刚開始学习的人理解线程有非常大的帮助 爸爸和儿子的故事 <span style="font-f ...