Test on 09/04/2016

滑稽树 

(huajitree.pas/c/cpp)

【问题描述】

JZYZ的湖畔边有一棵滑稽树,每年的冬天滑稽树上都会长出很多个滑稽果。我们用一个二维平面N,M描述每个滑稽果所能落下的位置,即每个滑稽果不可能落到我们所描述的二维平面之外。

   滑稽大师cdc钟爱于收集滑稽果,但是他只有一个篮子,篮子只能放在一个点上,即一个篮子最多收集一个滑稽果。现在滑稽大师cdc想知道他收集到滑稽果的期望值是多少。(cdc放的篮子在任意位置的概率相同)

为了(zao)方(shu)便(ju)起(fang)见(bian),我们用一个数S描述这个二维平面。

例如:

S=32=(100000)2 ,N=2,M=3

其对应的二维平面为:

100

000

其中1表示滑稽果所落下的位置,即有一个滑稽果落在坐标为(1,1)的位置。

那么这个数据的答案就是 1*(1/(2*3))=1/6

例如:

S=33=(100001)2 ,N=2,M=3

其对应的二维平面为:

100

001

其中1表示滑稽果所落下的位置,即有一个滑稽果落在坐标为(1,1)的位置,有一个在坐标为(2,3)的位置。

那么这个数据的答案就是 1*(2/(2*3))=1/3.

【输入】

输入仅为1行三个正整数,分别为N,M,S

【输出】

输出仅一行,为期望值的既约分数。即输出为a/b的形式,其中gcd(a,b)==1

如果期望值为0,输出0即可,如果为1,输出1/1

【输入输出样例1】

huajitree.in

huajitree.out

2 3 32

1/6

【数据范围】

对于70%的数据      N*M<=31 S<=2^31

对于 100%的数据    N*M<=63 S<=2^63

 

这题就是把一个数转化为二进制,找里面有多少个1,然后用 个数/n*m

再找 gcd(个数,n*m) 然后 “个数   /gcd” “/” “n*m/gcd”。

 

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 long long s;
 5 int n,m,sum=0,t;
 6 int gcd(int a,int b)
 7 {
 8     if(b==0)    return a;
 9     return gcd(b,a%b);
10 }
11 int main()
12 {
13     freopen("huajitree.in","r",stdin);
14     freopen("huajitree.out","w",stdout);
15     cin>>n>>m>>s;
16     while(s)
17     {
18         if(s%2==1)    sum++;
19         s/=2;
20     }
21     t=gcd(n*m,sum);
22     if(sum==0)    cout<<0<<endl;
23     else
24         cout<<sum/t<<'/'<<n*m/t<<endl;
25     fclose(stdin);    fclose(stdout);
26     return 0;
27 }

 

 

 

 

背包 

(pack.pas/c/cpp)

【问题描述】

滑稽大师cdc依靠每天的辛勤努力,终于收集到了足够多的滑稽,每个滑稽有两个属性,分别是滑稽值h和体积v,他要把所有的滑稽带走,但是cdc只有一个固定容积的背包。怎么才能带走尽可能多的滑稽值呢?

因为cdc是神犇,所以他很轻松的解决了这个问题。现在cdc来到了滑稽工厂,他要把所有的滑稽打包发给各个滑稽销售点,但是每次打包cdc都要付出一定的代价。

我们把滑稽工厂打包滑稽的生产线看作一个一维线段,每个滑稽都是线段上的一个点,且每个滑稽的顺序不可改变。

且每次打包滑稽只能是一段连续的区间,定义这个线段上从左到右第i个点的滑稽值为hi,体积为vi,设每次打包的区间为[i,j],则每次打包的代价为,现在cdc想知道他需要支付的最小代价为多少。他需要支付的代价为打包所有滑稽的代价和。

【输入】

第一行为一个正整数N,表示N个滑稽

接下来的N行每行两个正整数v,h,分别表示体积与滑稽值

【输出】

输出仅一行,表示cdc可能需要支付的最小代价

【输入输出样例1】

pack.in

pack.out

4

1 4

2 3

3 2

4 1

85

/*分组为{1}{2}{3}{4}

85=4*1+(4+3)*2+(4+3+2)*3+(4+3+2+1)*4

*/

【数据范围】

对于60%的数据 N<=1000

对于100%的数据

N<=1000000

hi,vi<=500

保证答案在long long 范围内

 

看着题目超级高大上,然而…小弱渣飘过

大暴力,估计是题目没出好把,

Sum(vi*(sumhi));

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<cmath>
 5 #include<algorithm>
 6 #include<ctime>
 7 using namespace std;
 8 long long a,x[1000000],y[1000000],z,w,h=0,sum=0,num=0;
 9 string s;
10 int main()
11 {
12     freopen("pack.in","r",stdin);
13     freopen("pack.out","w",stdout);
14     cin>>a;
15     
16     for(int i=1;i<=a;i++)
17     {
18         cin>>x[i]>>y[i];
19         sum+=y[i];
20         num+=sum*x[i];
21     }
22     cout<<num<<endl;
23     return 0;
24 }

 

 

 

 

 

街区运输

  block(.pas/c/cpp)

【问题描述】

好的,现在你们已经完美的解决了打包的问题了,现在需要把这些滑稽分发给各个滑稽销售点,

滑稽大师cdc想要把所有的滑稽分发出去,但是每个街区之间的道路有时候会因为各种原因而封闭掉,导致无法运输,cdc可以通过膜法瞬间知道哪些道路封闭了或那些道路又重新开放了(注:一个道路可能会封闭好几次,但是每次开放与之前封闭了几次无关)。他想知道从一个街区到另一个街区是否有可以到达的道路。

每个街区分布在NxM的二维平面上,同时保证N=2,也就是说这个二维平面只有两行M列,其中每个焦点代表一个街区。同时保证每次封闭和重新开放的道路一定在两个相邻的城市之间,在开始时所有的道路都是封闭的。

【输入】

第一行为正整数M,代表这是一个2*M的二维平面。

接下来的若干行,分别有4种形式.

  1. Exit:结束输入
  2. Open x1 y1 x2 y2 开放(x1,y1)至(x2,y2)的道路
  3. Close x1 y1 x2 y2 封闭(x1,y1)至(x2,y2)的道路

//数据保证以上所有的(x1,y1) (x2,y2)在平面上相邻

  1. Ask x1 y1 x2 y2 询问(x1,y1) (x2,y2)是否存在通路

【输出】

对于每个询问,输出1行,如果存在,请输出Y,如果不存在,请输出N

【输入输出样例1】

block.in

block.out

2

Open 1 1 1 2

Open 1 2 2 2

Ask 1 1 2 2

Ask 2 1 2 2

Exit

 

Y

N

 

【数据范围】

对于100%的数据保证N<=1e5 所有信息小于1e5

对于30%的数据保证N<=100

对于另外30%的数据保证N<=10000

 

我简单废话一下,本题所需要的数据结构就是线段树,简单的说就是用线段树维护连通性,高二的各位神犇你们说良心不良心呀。

怎么用线段树维护连通性呢?

反正我是用一个线段树里维护6个值,分别是

左上到左下的连通性

左上到右下的连通性

左上到右上的连通性

左下到右下的连通性

左下到右上的连通性

右上到右下的连通性

维护四个值好像也没什么问题,具体的自己思考

然后合并什么的就很好(ma)搞(fan)了

具体的实现可以参考我180行的代码,虽然写的很丑..

当然,本题没有强制在线,分块+并查集随便搞搞也可以过

COGS上有一个神犇90行就解决了,你们也可以去看看他的代码

 

  1 //BZOJ 1018
  2 //by Cydiater
  3 //2016.8.24
  4 #include <iostream>
  5 #include <cstring>
  6 #include <cstdio>
  7 #include <cstdlib>
  8 #include <string>
  9 #include <ctime>
 10 #include <cmath>
 11 #include <queue>
 12 #include <map>
 13 #include <iomanip>
 14 #include <algorithm>
 15 using namespace std;
 16 #define FILE "block"
 17 #define ll long long
 18 #define up(i,j,n)       for(int i=j;i<=n;i++)
 19 #define down(i,j,n)     for(int i=j;i>=n;i--)
 20 const int MAXN=1e5+5;
 21 const int oo=0x3f3f3f3f;
 22 inline int read(){
 23       char ch=getchar();int x=0,f=1;
 24       while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
 25       while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
 26       return x*f;
 27 }
 28 struct Tree{
 29       bool luru;/*left up to right up*/
 30       bool ldrd;/*left down to right down*/
 31       bool lurd;/*left up to right down*/
 32       bool ldru;/*left down to right up*/
 33       bool luld;/*left up ro left down*/
 34       bool rurd;/*right up to right down*/
 35 }t[MAXN<<4];
 36 bool toright[2][MAXN],pipe[MAXN];
 37 int N,r1,c1,r2,c2,k,v,limleft,limright,cnt=0;
 38 char s[20];
 39 namespace solution{
 40       Tree reload(Tree a,Tree b,bool upedge,bool downedge){
 41             Tree c;
 42             c.luld=a.luld;c.rurd=b.rurd;
 43             c.luru=(a.luru&upedge&b.luru)|(a.lurd&downedge&b.ldru);
 44             c.ldrd=(a.ldrd&downedge&b.ldrd)|(a.ldru&upedge&b.lurd);
 45             c.lurd=(c.luru&c.rurd)|(c.luld&c.ldrd)|(a.luru&upedge&b.lurd)|(a.lurd&downedge&b.ldrd);
 46             c.ldru=(c.ldrd&c.rurd)|(c.luld&c.luru)|(a.ldrd&downedge&b.ldru)|(a.ldru&upedge&b.luru);
 47             c.luld=c.luld|(c.lurd&c.ldrd)|(c.ldru&c.luru)|(a.luru&upedge&b.luld&downedge&a.ldrd);
 48             c.rurd=c.rurd|(c.lurd&c.luru)|(c.ldru&c.ldrd)|(b.luru&upedge&a.rurd&downedge&b.ldrd);
 49             return c;
 50       }
 51       void build(int leftt,int rightt,int root){
 52             if(leftt==rightt){
 53                   t[root].luru=t[root].ldrd=1;
 54                   t[root].lurd=t[root].ldru=t[root].luld=t[root].rurd=0;
 55                   return;
 56             }
 57             int mid=(leftt+rightt)>>1;
 58             t[root].luru=t[root].ldrd=t[root].lurd=t[root].ldru=t[root].luld=t[root].rurd=0;
 59             build(leftt,mid,root<<1);
 60             build(mid+1,rightt,root<<1|1);
 61       }
 62       void updata1(int leftt,int rightt,int root){
 63             if(leftt>k||rightt<k)       return;
 64             if(leftt==k&&rightt==k){
 65                   t[root].luld=t[root].rurd=t[root].lurd=t[root].ldru=v;
 66                   return;
 67             }
 68             int mid=(leftt+rightt)>>1;
 69             updata1(leftt,mid,root<<1);
 70             updata1(mid+1,rightt,root<<1|1);
 71             t[root]=reload(t[root<<1],t[root<<1|1],toright[0][mid],toright[1][mid]);
 72       }
 73       void updata2(int leftt,int rightt,int root){
 74             if(leftt>k||rightt<k)   return;
 75             if(leftt==k&&rightt==k) return;
 76             int mid=(leftt+rightt)>>1;
 77             updata2(leftt,mid,root<<1);
 78             updata2(mid+1,rightt,root<<1|1);
 79             t[root]=reload(t[root<<1],t[root<<1|1],toright[0][mid],toright[1][mid]);
 80       }
 81       Tree get(int leftt,int rightt,int root){
 82             Tree a,b,c;
 83             if(leftt>=limleft&&rightt<=limright)     return t[root];
 84             int mid=(leftt+rightt)>>1;
 85             if(mid+1<=limleft)                  return get(mid+1,rightt,root<<1|1);
 86             else if(limright<=mid)              return get(leftt,mid,root<<1);
 87             else{
 88                   a=get(leftt,mid,root<<1);
 89                   b=get(mid+1,rightt,root<<1|1);
 90                   c=reload(a,b,toright[0][mid],toright[1][mid]);
 91             }
 92             return c;
 93       }
 94       void slove(){
 95             memset(toright,0,sizeof(toright));
 96             while(scanf("%s",s)!=EOF){
 97                   if(s[0]=='E')break;
 98                   if(s[0]=='O'){
 99                         c1=read();r1=read();c2=read();r2=read();
100                         if(r1==r2&&c1!=c2){
101                               k=r1;v=1;pipe[k]=1;
102                               updata1(1,N,1);
103                         }
104                         if(r1!=r2&&c1==c2){
105                               r1=min(r1,r2);k=r1;
106                               toright[c1-1][r1]=1;
107                               updata2(1,N,1);
108                         }
109                   }
110                   if(s[0]=='C'){
111                         c1=read();r1=read();c2=read();r2=read();
112                         if(r1>r2){
113                               swap(r1,r2);
114                               swap(c1,c2);
115                         }/*make sure that r1<=r2*/
116                         if(r1==r2&&c1!=c2){
117                               k=r1;v=0;pipe[k]=0;
118                               updata1(1,N,1);
119                         }
120                         if(r1!=r2&&c1==c2){
121                               r1=min(r1,r2);
122                               toright[c1-1][r1]=0;k=r1;
123                               updata2(1,N,1);
124                         }
125                   }
126                   if(s[0]=='A'){
127                         c1=read();r1=read();c2=read();r2=read();
128                         if(c1==c2&&r1==r2){puts("Y");continue;}
129                         if(r1>r2){
130                               swap(r1,r2);
131                               swap(c1,c2);
132                         }/*make sure that r1<=r2*/
133                         limleft=1;limright=r1;Tree go_left=get(1,N,1);
134                         limleft=r1;limright=r2;Tree go_mid=get(1,N,1);
135                         limleft=r2;limright=N;Tree go_right=get(1,N,1);
136                         if(r1==r2&&c1!=c2){
137                               if(go_left.rurd||go_right.luld||go_mid.luld)puts("Y");
138                               else                                        puts("N");
139                         }
140                         if(r1!=r2&&c1==c2){
141                               if(c1==1){
142                                     if((go_left.rurd&go_mid.ldrd&go_right.luld)||go_mid.luru||(go_left.rurd&go_mid.ldru)||(go_right.luld&go_mid.lurd))puts("Y");
143                                     else                                                                                                              puts("N");
144                               }else{
145                                     if((go_left.rurd&go_mid.luru&go_right.luld)||go_mid.ldrd||(go_left.rurd&go_mid.lurd)||(go_right.luld&go_mid.ldru))puts("Y");
146                                     else                                                                                                              puts("N");
147                               }
148                         }
149                         if(r1!=r2&&c1!=c2){
150                               if(c1==1){/*left up to right down*/
151                                     if((go_left.rurd&go_mid.ldrd)||go_mid.lurd||(go_left.rurd&go_mid.ldru&go_right.luld)||(go_mid.luru&go_right.luld))puts("Y");
152                                     else                                                                                                              puts("N");
153                               }else{/*left down to right up*/
154                                     if((go_left.rurd&go_mid.luru)||go_mid.ldru||(go_left.rurd&go_mid.lurd&go_right.luld)||(go_mid.ldrd&go_right.luld))puts("Y");
155                                     else                                                                                                              puts("N");
156                               }
157                         }
158                   }
159             }
160       }
161 }
162 int main(){
163     freopen(FILE".in","r",stdin);
164     freopen(FILE".out","w",stdout);
165       using namespace solution;
166       N=read();
167       build(1,N,1);
168       slove();
169       return 0;
170 }

 

转载于:https://www.cnblogs.com/Kaike/p/5861568.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php项目私有化部署保护代码,ThinkPHP项目安全配置解决方案

前言:ThinkPHP MVC框架越来被开发者接受,众多的开发者选择了这个框架&#xff0c;也有很多的优秀项目使用的ThinkPHP框架。最近整理了一下ThinkPHP项目的一些安全配置。可能并不适用全部项目&#xff0c;大家可以适当的使用如下的安全配置。前置知识:web容器和各类组件的版本&a…

Apache-SimpleEmail 简单应用

比JavaMail使用方法要直接&#xff0c;jar包只需要在JavaMail的基础上添加commons-email-1.4.jar即可。 代码&#xff1a; // QQ邮箱发送邮件 SimpleEmail simpleEmail new SimpleEmail(); simpleEmail.setHostName("smtp.qq.com"); simpleEmail.setAuthentication(…

php7.0 百度百科,PHP 7.0.10正式发布

原标题&#xff1a;PHP 7.0.10正式发布PHP 7.0.10 正式发布了。下载地址&#xff1a;http://php.net/distributions/php-7.0.10.tar.gz改进日志如下&#xff1a;- Core:. Fixed bug #72629 (Caught exception assignment to variables ignores references). (Laruence). Fixed …

javascript中构造函数的说明

1.1 构造函数是一个模板 构造函数&#xff0c;是一种函数&#xff0c;主要用来在创建对象时对 对象 进行初始化&#xff08;即为对象成员变量赋初始值&#xff09;&#xff0c;并且总是与new运算符一起使用。 1.2 new 运算符 new运算符创建一个新对象。关键字new后跟随一个函数…

大数据分析 es hive_使用Hive和iReport进行大数据分析

大数据分析 es hive每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始&#xff1a;“ 你是被监视。 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器。 我知道是因为...我建造了它。 “当然&#xff0c;我们的技术人员知道得更多。 庞大的…

datetime unix php,PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】...

本文实例讲述了PHP基于DateTime类解决Unix时间戳与日期互转问题。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这个问题主要在32位的系统下出现&#xff0c;64位的不存在这样的问题。php 5.2提供了DateTime类来处理这样的问题&#xff0c;参考方案如下(请注意时区的处…

Java中的使用了未经检查或不安全的操作

1。 javac -Xlint:unchecked MyMath.java检查不安全的操作 /***************************************************/ MyMath.java:29: 警告: [unchecked] 对作为原始类型ArrayList的成员的add(E)的调用未经过检查 array.add("1"); ^ 其中, E是类型变量: E扩展已在类 …

java+jsp+网页制作,java+jsp+mysql网页制作总结(2)

错误&#xff1a;url通过get传递时汉字出错解决&#xff1a;url通过get传递时汉字会乱码&#xff0c;1.String name1request.getParameter("name");String name new String(name1.getBytes("ISO-8859-1"),"gbk");2.通过post传递参数错误&#x…

Analyzing Storage Performance using the Windows Performance Analysis ToolKit (WPT)

https://blogs.technet.microsoft.com/robertsmith/2012/02/07/analyzing-storage-performance-using-the-windows-performance-analysis-toolkit-wpt/转载于:https://www.cnblogs.com/zengkefu/p/5864455.html

Redis聚类

本文是我们学院课程的一部分&#xff0c;标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外&#xff0c;您将在Redis命令行中乱七八糟。 接下来是更高级的主题&#xff0c;例如复制&#xff0c;分片和集群&#xff0c;同时还介绍了…

Java宣言的时候,Java基础恶补——宣言及访问控制

Java基础恶补——声明及访问控制[SCJP Sun Certified Programmer for Java 6 Study Guide (Exam 310-065)] chapter 1一. 标识符1. 标识符只能由字母、下划线、货币符号、数字组成&#xff0c;除数字外其余均可作为标识符的开头符号。(PS&#xff1a;汉字作为标识符也是合法的…

域策略禁用usb

文档及模板可在 http://pan.baidu.com/s/1qYTcjTy 下载 pro_usb_users.adm 此模板可禁用到 指定盘符&#xff0c;针对用户策略 pro_usb_computers.adm 此模板 针对计算机&#xff0c;一般只要它就好了。 可以从 3 个方面下手 adm 配置 文件。注册表usb驱动其实 adm配置文件&…

java常用代码,Java常用代码

Java常用代码/*** author he*** 把Date转换成String&#xff0c;以yyyy-MM-dd HH:mm:ss的形式显示*/public static String DateToString(Date tempDate) {String date_str "";SimpleDateFormat formatter new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); …

【Effective Java】6、使用复合优先于使用继承

这个&#xff0c;不管是什么书都会这样说&#xff0c;因为常常我们并不需要继承&#xff0c;而只是想把类进行一定的扩展&#xff0c;而我们想扩展的属性或方法对应的类都有&#xff0c;这个时候如果两者是is a的关系&#xff0c;这种关系是确实存在的&#xff0c;那么就可以使…

php遍历数组的四种方法,PHP遍历数组的常见几种方法

小白发博文&#xff0c;看到某个知识点&#xff0c;就当复习下。$arrarray(football > well,swimming>very well,run>not well);第一种方法&#xff1a;foreach遍历数组&#xff1a;foreach($arr as $key>$val){echo $key.-----.$val.;}第二种方法&#xff1a;…

java调用wadl_Java中的WADL:温和的介绍

java调用wadlWADL&#xff08; Web应用程序描述语言 &#xff09;对REST而言&#xff0c;WSDL对SOAP而言。 这种语言的存在引起了很多争议&#xff08;请参阅&#xff1a; 我们需要WADL吗&#xff1f; 或者 需要 WADL还是不需要WADL &#xff09;。 我可以想到使用WADL的一些合…

Js的 继承

Js 和 Java , C等语言不是很一样 . 其他语言有 类和实例 但是Js就比较特殊 , 所以 类和实例 只能说是大多数面向对象编程的语言的基本概念 . Js比较特殊 , 它不去分类和实例的概念 . 而是通过原型(prototype)来实现面向对象编程 . 下面介绍Js中第一种用于继承的方法 var rob…

php 伪静态 500错误,Apache开启伪静态后报500错误.

出自:http://blog.163.com/lgh_2002/blog/static/44017526201051452939761/检查APACHE日志发现如下信息&#xff1a;Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if nec…

onhashchange

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>Document</title>6 </head>7 <body>8 <input type"button" value"随机" id"btn1…

mysql+yes数据类型,怎样修改mysql列的数据类型?

修改字段(列)数据类型修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 MySQL 中修改字段数据类型的语法规则如下&#xff1a;ALTER TABLE MODIFY 其中&#xff1a;表名&#xff1a;指要修改数据类型的字段所在表的名称&#xff1b;字段名&#xff1a;指需要修…