2016年9月25日四校联考

·前言:啊f**k今天早上体检,但是并不影响做题2333因为题目真的好 NOIP 啊

啊对了附中评测姬好坑啊正解强行T 23333

第一题《萝卜种子》

简要题意:小姑娘看了看狐狸的萝卜田,发现田里最多只能生长7个萝卜(多余的种子不会发芽),且4种萝卜发芽的概率是完全相同的。它们的效果分别是:

普通萝卜:生产2kg兔粮

超能萝卜:生产2kg兔粮,每种植一个其他萝卜额外产生1kg兔粮

固氮萝卜:不能用于生产兔粮,但能使每个普通萝卜和超能萝卜生产的兔粮+1kg

金坷垃萝卜:不能用于生产兔粮,但能使每个普通萝卜和超能萝卜生产的兔粮+2kg

【输入数据】

一行,四个正整数,表示Npt,Ncn,Ngd,Njkl

【输出数据】

一行,一个数表示生产兔粮的期望值(保留2位小数)

【样例输入1】

1 1 1 1

【样例输出1】

13.00

【样例输入2】

2 2 2 2

【样例输出2】

35.50  //(36+40+30+36)/4=35.50

【数据范围】

对于50%的数据,Npt+Ncn+Ngd+Njkl<=7

对于100%的数据,Npt,Ncn,Ngd,Njkl<=10

题解:这一题来源于炉石传说圣骑士的斩杀

这题我们写个暴力就能过了,记住做的时候写组合数算方案。。。QAQ

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <string>
 6 using namespace std;
 7 long double C(int a,int b)
 8 {
 9     if (a<b) return 0;
10     int i;
11     long double kk=1;
12     for (i=a;i>=a-b+1;i--) kk=kk*i;
13     for (i=b;i>=1;i--) kk=kk/i;
14     return kk;
15 }
16 int main()
17 {
18     int a,b,c,d;
19     freopen("seed.in","r",stdin);
20     freopen("seed.out","w",stdout);
21     cin>>a>>b>>c>>d;
22     int minkeng=min(7,a+b+c+d);
23     double zy=1.0/C(a+b+c+d,minkeng);
24     double ans=0;
25     for (int i=0;i<=a;i++)
26       for (int j=0;j<=b;j++)
27         for (int k=0;k<=c;k++)
28           for (int p=0;p<=d;p++)
29             {
30                 if (i+j+k+p!=minkeng)
31                   continue;
32                 long double wwd=C(a,i)*C(b,j)*C(c,k)*C(d,p)*zy;
33                 int aa;
34                 aa=k*(i+j)+2*p*(i+j);
35                 aa+=i*2+(minkeng+1)*j;
36                 ans+=wwd*aa;
37             }
38     printf("%.2lf",ans);
39     return 0;
40 }

蕾姆..

第二题《击败黑熊》

简要题意:凶恶的黑熊的陷阱一共有N+1个机关,机关分为3种,它们分别是:

守卫机关(d):该机关有一个守卫,守卫不会主动攻击,小兔可以选择无视守卫直接通过机关或者杀死该守卫,杀死守卫会使自身的罪恶值+1,并获得一定数量的战斗力

审判机关(p):该机关有一个守卫,不能被杀死,如果小兔的罪恶值大于或等于守卫的触发上限,守卫就会主动攻击小兔,小兔直接阵亡

黑熊机关:前N个机关均不是黑熊机关,第N+1个机关一定是黑熊机关,只有小兔的罪恶值大于或等于M才能通过,否则小兔直接阵亡

小兔希望在通关的基础上获得最大的战斗力以便和黑熊硬碰硬。

【输入数据】

第一行两个整数N,M

接下来N行描述第1~N个机关,每行一个字符和一个数值

字符为d:该机关是守卫机关,后面的数值表示击杀守卫获得的战斗力

字符为p:该机关是审判机关,后面的数值表示守卫的触发上限

【输出数据】

小兔一定会阵亡输出“Rabbit can not beat bear.”(不含引号),否则输出一个整数表示小兔所能获得的最大战斗力

【样例输入】

4 2

d 1

d 2

p 2

d 1

【样例输出】

3

【数据范围】

对于10%的数据,N=0

对于20%的数据,N<=500

对于40%的数据,N<=8000

另有20%的数据,没有审判机关

对于100%的数据,N<=500000

答案保证不超过2147483647

题解:啊,这题的话我们可以脑补一下,我们会发现在遇到审判机关时,它只审判罪恶值而不是战斗力,所以我们可以维护一个小根堆,把战斗力小的都删除掉,一遍遍模拟就好了

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <stdio.h>
 4 #include <cmath>
 5 #include <string>
 6 #include <string.h>
 7 #include <numeric>
 8 #include <queue>
 9 #define gc getchar()
10 #define REM main
11 using namespace std;
12 priority_queue<int,vector<int>, greater<int> >q;
13 int read()
14 {
15     int xxxx=0,fuh=1;char ch=gc;
16     while(!isdigit(ch)){
17         if(ch==‘-‘)fuh=-1;
18         ch=gc;
19     }
20     while(isdigit(ch)){
21         xxxx=(xxxx<<3)+(xxxx<<1)+ch-‘0‘;ch=gc;
22     }
23     return xxxx*fuh;
24 }
25 /*int pow4(int a,int b)
26 {
27     int r=1,base=a;
28     while(b!=0)
29     {
30         if(b&1)
31             r*=base;
32         base*=base;
33         b>>=1;
34     }
35     return r;
36 }*/
37 int REM()
38 {
39     cin.sync_with_stdio(false);
40     int n,m;
41     freopen("beatbear.in","r",stdin);
42     freopen("beatbear.out","w",stdout);
43     n=read();m=read();int cnt=0;
44     for (int i=1;i<=n;i++)
45       {
46           char ch;
47           ch=gc;
48           if (ch==‘d‘)
49             {
50                 int k=read();
51                 q.push(k);
52                 cnt++;
53             }
54           else
55             {
56                 int k=read();
57                 while(cnt>=k)
58                   {
59                       cnt--;
60                       q.pop();
61                   }
62             }
63       }
64     if (cnt<m)
65       {
66           cout<<"Rabbit can not beat bear.";
67           return 0;
68       }
69     int ans=0;
70     while(cnt>0)
71       {
72           ans+=q.top();
73           q.pop();
74           cnt--;
75       }
76     cout<<ans;
77     return 0;
78 }

南小鸟..

第三题:《种萝卜2》

简要题意:在嫦娥的帮助下,狐狸将土地拓成了M个坑排成一排,从左到右按1~M编号,每个坑里可以种一个胡萝卜,在N天小兔都会凭心情选择一个坑,狐狸会到那个坑种胡萝卜,如果已经被占用,则会种在前一个坑里,如果依然被占用,狐狸会再往前找空的坑,直到找到空的坑或者发现前面没有可用的坑为止。你本来需要输出N行,每一行表示当天的胡萝卜将种在哪一个坑里(无法种下输出0),但为了避免输出占用过多的时间,你只需要输出(1*第一天+2*第二天+……+N*第N天)%1000000007的结果即可

【输入数据】

第一行两个整数N,M

接下来一个N个整数,表示当天小兔选择的坑

【输出数据】

一行,一个整数,意义如题目描述

【样例输入】

5 8

7 7 1 6 1

【样例输出】

42  //1*7+2*6+3*1+4*5+5*0=42

【数据范围】

对于30%的数据,N,M<=1000

对于70%的数据,N,M<=200000

对于100%的数据,N,M<=3000000

题解:啊f**k我们写个并查集维护点i左边的最右是哪个点就好了。。

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <stdio.h>
 4 #include <cmath>
 5 #include <string>
 6 #include <string.h>
 7 #include <numeric>
 8 #define gc getchar()
 9 #define REM main
10 using namespace std;
11 int f[5000000+1];
12 const long long mod=1000000007;
13 int read()
14 {
15     int xxxx=0,fuh=1;char ch=gc;
16     while(!isdigit(ch)){
17         if(ch==‘-‘)fuh=-1;
18         ch=gc;
19     }
20     while(isdigit(ch)){
21         xxxx=(xxxx<<3)+(xxxx<<1)+ch-‘0‘;ch=gc;
22     }
23     return xxxx*fuh;
24 }
25 int find(int x)
26 {
27     if (x!=f[x])
28       return f[x]=find(f[x]);
29     return x;
30
31 }
32 int REM()
33 {
34     cin.sync_with_stdio(false);
35     freopen("carrot.in","r",stdin);
36     freopen("carrot.out","w",stdout);
37     int n,m,i,j;
38     n=read();m=read();
39     for (i=1;i<=m;i++) f[i]=i;
40     long long ans=0;
41     for (i=1;i<=n;i++)
42       {
43           int x=read();
44           int fa=find(x);
45           if (fa==0) continue;
46           f[fa]=fa-1;
47           ans=(ans+(long long)fa%mod*(long long)i%mod)%mod;
48       }
49     cout<<ans;
50     return 0;
51 }

花丸亲..

论体检插队...

时间: 2024-10-18 03:42:19

2016年9月25日四校联考的相关文章

2016年3月25日作业

软考信息系统监理师,2016年3月25日作业 一.进度控制 1.进度控制分为哪四个步骤? 答:计划(Plan).执行(Do).检查(Check).行动(Action) 2.进度计划编制的目的是什么?哪个最重要? 答: 1)  保证暂时获利以补偿已经发生的费用支出 2)  协调资源 3)  使资源被需要时可以利用 4)  预测在不同时间上所需的资金和资源的级别一遍赋予项目不同的优先级 5)  项目进度的正常进行 最重要的是第一个. 3.判断:计划实施阶段是进度控制的核心,是否正确? 答:是 4. 

10.29 FJ四校联考

//四校联考Rank 16 感觉很滋磁 (虽然考的时候抱怨厦门一中出的数学题很NOIP///) 圈地 [问题描述] n根长度不一定相同的木棍,至多可以对其中一根切一刀,然后用其中的任意根围一个三角形,求三角形的最大面积.设面积为S,输出16*S^2对998244353取模后的答案.特别地,无解输出-1. 注:退化的三角形(面积为零)不被认为是三角形,答案应该为-1. [输入文件] 输入文件为tri.in. 输入文件第一行包含两个正整数n和998244353. 第二行包含n个正整数,表示每根木棍的

软考信息系统监理师,2016年3月25日作业

一.进度控制 1.进度控制分为哪四个步骤? 答:进度控制可以分成四个步骤:计划(Plan ).执行(Do ).检查(Check)和行动 (Action ),简称PDCA. 2.进度计划编制的目的是什么?哪个最重要? 答:进度计划编制的主要目的 (1)保证按时获利以补偿已经发生的费用支出; (2)协调资源; (3)使资源被需要时可以利用; (4)预测在不同时间上所需的资金和资源的级别以便赋予项目以不同的优先 级; (5)项目进度的正常进行. 在这五个目的中,第一个最重要,因为这是项目监理工程师对项

C++第八天笔记2016年02月25日(周四)A.M

1.    继承:一个类A可以继承另一个类B,那么我们称类B为基类(父类),类A为派生类 (子类). 2.    派生类从基类继承了所有成员,除了构造函数.析构函数.=函数. 3.    基类的私有成员,虽然它们也是派生类的私有成员,但是不能在派生类中定义的成员函数访问.这些基类的私有成员只能通过基类的公有成员函数访问. 4.    子类可以自己实现与父类成员函数原型相同(函数名.参数列表)的成员函数,称为覆盖.覆盖是函数重载的特例,覆盖一定是发生在继承的过程中. 在子类中调用被覆盖的父类版本的

2016年5月25日下午(妙味课堂js预热课程-4笔记二)

二.无缝滚动    如上图所示,现在很多网页都会实现这样的效果:它是如何实现的呢? 1.布局 注意如果想让一个div的位置发生改变,则最好给这个div加上一个绝对定位:position:absolute: obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位像素. (1)这里插入一个小程序,即如何让Div移动起来:代码如下: 1 <style> 2 #div1{width:100px;height:100px;backg

2016年1月25日 《1024伐木累》-小白篇之开发网站,三天!(中篇-2奇怪的IE)-总章节十一

往期回顾:  老王的“先见之明”,解决了困扰耗仔三人的大难题.顺利安装完开发工具,大家投入紧张的工作.航空部领导的突然闯入,IE不兼容,页面错乱,摆在三人面前的形势依然严峻.第一次见这阵仗的耗仔,又会怎么办? 2016-02-01<1024伐木累>-小白篇之开发网站,三天!(中篇-2奇怪的IE) # region 总章节11 IE出了问题,来不及找原因,屋内就涌进一堆领导,你一言我一语,围着三人叽叽喳喳说个不停. 此时的耗仔头都大了,这到底是要干啥,刚开始没几个小时,再这么折腾下去,还怎么工作

2016年03月25日

1 Android的线程 2 Android是怎么处理UI和耗时操作的,不同方式的优缺点 ?主要有三种方法,一为Handler,二为AsyncTask,三为自己开子线程执行耗时操作,然后调用Activity的runOnUiThread()方法更新ui: handler机制是,在主线程中创建handler对象, 当执行耗时操作时,新建一个线程,在这个线程中执行耗时操作,通过调用handler的sendMessage,post等方法,更新ui界面: AsyncTask本质上是一个线程池,所有的异步任

2017年7月25日多校一Function

Function这道题我当时一直很迷,到底怎么来的啊,为什么会这样啊?? 然后看了题解才知道,原来是找循环啊. 已知f(i)=b[f(a(i)],则 f(0) = b[f(a[0])] = b[f(2)] f[1] = b[f(a[1])] = b[f(0)] f[2] = b[f(a[2])] = b[f(1)] 其实这道题可以转化为求环的问题,有多少种方式可以构成题目要求的环,即b的环可以有多少种方式画成a的环. 第一个样例我们可以知道 a0->a1->a0, a2->a2, b0-

2016年9月25日HDU刷题所得

2019 注意scanf("%d%d",&m,&n)的顺序所代表的不同的含义: 2018  ..还未知: 2017 gets()的使用方法: 2016(寻找无序数列中最小值,使其与首数对换位置)注意逻辑顺序(可优化): 2015(偶数和的平均值)可利用  (i+=m)进行优化: 2014(评委评分)注意逻辑顺序与在求解double值得过程中遇到整型相除需要注意小数位数: 2013 (蟠桃) 注意数据范围以及万恶的EOF 2012 无. 2011 无.