Codeforces Beta Round #62

A Irrational problem

题意

f(x) = x mod p1 mod p2 mod p3 mod p4

问你[a,b]中有多少个数满足f(x)=x

题解

显然直接带进去就好了……

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int p1,p2,p3,p4,a,b;
  6. scanf("%d%d%d%d%d%d",&p1,&p2,&p3,&p4,&a,&b);
  7. int ans = 0;
  8. for(int i=a;i<=b;i++){
  9. if(i%p1%p2%p3%p4==i)
  10. ans++;
  11. }
  12. cout<<ans<<endl;
  13. }

B - Energy exchange

题意

你可以把能量从一个位置转移到另外一个位置,但会损失k%能量。

你想要所有最后的能量都是一样的,问你是多少

题解

二分答案就好了……

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 1e4+7;
  4. int n,k;
  5. double a[maxn];
  6. int main()
  7. {
  8. scanf("%d%d",&n,&k);
  9. for(int i=0;i<n;i++)
  10. scanf("%lf",&a[i]);
  11. double l=0,r=1e6;
  12. for(int i=0;i<100;i++){
  13. double mid=(l+r)/2.0;
  14. double s = 0;
  15. for(int j=0;j<n;j++){
  16. if(a[j]>mid){
  17. s+=1.0*(100-k)*(a[j]-mid)/100.0;
  18. }else{
  19. s-=(mid-a[j]);
  20. }
  21. }
  22. if(s<0)r=mid;
  23. else l=mid;
  24. }
  25. printf("%.12f\n",l);
  26. }

C. Synchrophasotron

题意

给你一些管道,必须从小的管道流到大的管道,且如果流过flow的流量的话,那么代价就是a[i]+flow^2

每个管道还有最少流量和最大流量限制。

现在问你一开始1号管道最少有多少水,才能使得所有水都到达n点,且最大的花费是多少

题解

直接暴力dfs就好了,暴力枚举最小值,然后dfs去check,暴力枚举每个水管通过多少的水。

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 15;
  4. int l[maxn][maxn],h[maxn][maxn],a[maxn][maxn];
  5. int flow[maxn],n,Max,Min;
  6. void dfs(int x,int y,int cost){
  7. if(x==n){
  8. Max = max(cost,Max);
  9. return;
  10. }
  11. if(y>n){
  12. if(flow[x]==0)dfs(x+1,x+2,cost);
  13. return;
  14. }
  15. for(int i=l[x][y];i<=h[x][y];i++){
  16. if(flow[x]<i)return;
  17. int ncost = cost;
  18. if(i!=0)ncost+=a[x][y]+i*i;
  19. flow[x]-=i;flow[y]+=i;
  20. dfs(x,y+1,ncost);
  21. flow[x]+=i;flow[y]-=i;
  22. }
  23. }
  24. int main()
  25. {
  26. scanf("%d",&n);
  27. for(int i=0;i<n;i++)
  28. for(int j=i+1;j<n;j++){
  29. int A,B;scanf("%d%d",&A,&B);
  30. scanf("%d%d%d",&l[A][B],&h[A][B],&a[A][B]);
  31. }
  32. Max = -1,Min = -1;
  33. for(Min=0;Min<=26;Min++){
  34. flow[1]=Min;
  35. dfs(1,2,0);
  36. if(Max!=-1)break;
  37. }
  38. if(Max==-1)cout<<"-1 -1"<<endl;
  39. else cout<<Min<<" "<<Max<<endl;
  40. }

D. Half-decay tree

题意

给你一个完全二叉树,一共两种操作,第一种操作是使得某个节点的电荷增加k

第二种操作是随机删除掉从某个叶子节点到达根节点的路径,然后输出带电量。

带电量的定义是取所有连通块的带电量的最大值

题解

直接暴力dfs下去,维护子树带电量和这个节点的带电量。

每次树形dp取左边还是取右边,维护一下就好了。

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. map<int,int>sum,cost;
  4. int h,n;
  5. double solve(int x,double ans){
  6. if(sum[x]<=ans)return ans;
  7. return (solve(x*2,max(ans,1.*cost[x]+sum[x*2+1]))+solve(x*2+1,max(ans,1.*cost[x]+sum[x*2])))/2.0;
  8. }
  9. int main()
  10. {
  11. scanf("%d%d",&h,&n);
  12. for(int i=0;i<n;i++){
  13. string s;
  14. cin>>s;
  15. if(s[0]=='a'){
  16. int a,b;
  17. scanf("%d%d",&a,&b);
  18. cost[a]+=b;
  19. while(a){
  20. sum[a]+=b;
  21. a/=2;
  22. }
  23. }
  24. else{
  25. printf("%.9f\n",solve(1,0));
  26. }
  27. }
  28. }

Codeforces Beta Round #62 题解【ABCD】的更多相关文章

  1. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  2. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  3. Codeforces Beta Round #5 B. Center Alignment 模拟题

    B. Center Alignment 题目连接: http://www.codeforces.com/contest/5/problem/B Description Almost every tex ...

  4. Codeforces Beta Round 84 (Div. 2 Only)

    layout: post title: Codeforces Beta Round 84 (Div. 2 Only) author: "luowentaoaa" catalog: ...

  5. Codeforces Beta Round #17 D. Notepad (数论 + 广义欧拉定理降幂)

    Codeforces Beta Round #17 题目链接:点击我打开题目链接 大概题意: 给你 \(b\),\(n\),\(c\). 让你求:\((b)^{n-1}*(b-1)\%c\). \(2 ...

  6. Codeforces Beta Round #16 E. Fish (状压dp)(概率dp)

    Codeforces Beta Round #16 (Div. 2 Only) E. Fish 题目链接:## 点击打开链接 题意: 有 \(n\) 条鱼,每两条鱼相遇都会有其中一只吃掉对方,现在给你 ...

  7. Codeforces Beta Round #13 C. Sequence (DP)

    题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考 ...

  8. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  9. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

随机推荐

  1. jsp 和jspf

    http://www.cnblogs.com/liaojie970/p/5035077.html

  2. win10使用Composer-Setup安装Composer以及使用Composer安装Yii2最新版

    1:下载 ca-bundle.crt和cacert.pem 将这两个文件放在php目录下 2:php.ini中添加上述两个文件的路径 curl.cainfo=C:/xampp/php/ca-bundl ...

  3. Programming Assignment 5: Kd-Trees

    用2d-tree数据结构实现在2维矩形区域内的高效的range search 和 nearest neighbor search.2d-tree有许多的应用,在天体分类.计算机动画.神经网络加速.数据 ...

  4. dubbo demo实现

    粗略的写了一个dubbo的demo,使用了alibaba的dubbo,还有zookeeper来做配置中心 参考资料地址: http://dubbo.io/User+Guide-zh.htm#UserG ...

  5. 第38讲:List伴生对象操作方法代码实战

    今天来看一下List伴生对像的操作方法 让我们来看下代码  println(List.apply(1,2,3))//等同于List(1,2,3)     println(List.range(1, 4 ...

  6. 如何卸除SDL TRADOS中的自开发插件

    去年学着用SDL的例子编译了一个名为SimpleText的插件,每次打开TRADOS 2014时都要提示三次加载插件,很是烦人.但我想卸掉时,却无从下手,不知道怎么办.这个问题纠缠了我很久,今晨心性比 ...

  7. 安装xubuntu时遇到的一些问题

    1  下载地址 http://www.linuxdown.net/ 2  选择虚拟机 VirtualBox 3  安装步骤 http://www.cnblogs.com/zhcncn/p/398730 ...

  8. linux-8 基本命令---echo

    1.echo   命令用于终端显示字符或变量 格式:“echo[字符串| 变量]” @1 .echo命令的字符串输出到终端: @2 .echo查看当前SHELL的变量值(前面有$符号): @3 .查看 ...

  9. HTTP02--Http请求头及缓存知识

    一.常用工具 Linux下:curl命令,I参数可以查看http head信息. Firefox:Firebug.HttpFox 二.常见Http Head信息 三.浏览器缓存机制 使用ctrl+F5 ...

  10. SQLSERVER DBA容易犯的十个错误

    SQLSERVER DBA容易犯的十个错误 翻译自:http://sqlsentry.tv/top-10-administrative-mistakes-on-sql-server/ 除了排名前十的错 ...