期望:30 + 40 + 50 = 120

实际:30 + 50 + 40 = 120

‘’

思路:最重要的是发现

是完全没有用的,然后这个题目就可以转成DP来做。

/*
期望的分:30
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
double ans;
double p[][],s[][];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
n=read();
for(int i=;i<=n;i++)
for(int j=;j<i;j++){
scanf("%lf",&p[i][j]);
s[i][j]=1.0-p[i][j];
}
if(n==){
ans=;
printf("%.2lf",ans);
return ;
}
if(n==){
double ans1=p[][];
double ans2=s[][]*;
ans=ans1+ans2;
printf("%.2lf",ans);
}
if(n==){
double ans1=p[][]*p[][]*;
double ans2=p[][]*s[][]*;
double ans3=s[][]*p[][]*;
double ans4=s[][]*s[][]*;
ans=ans1+ans2+ans3+ans4;
ans1=p[][]*;ans2=s[][]*;
ans3=p[][]*;ans4=s[][]*;
ans=max(ans,max(ans1+ans2,ans3+ans4));
printf("%.2lf",ans);
}
}

30暴力

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
double p[][],f[][];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<i;j++)
scanf("%lf",&p[i][j]);
f[][]=;
for(int i=;i<n;i++)
for(int j=;j<=i;j++){
f[i+][j+]+=f[i][j]*p[i+][j];
f[i+][j]+=f[i][j]*(-p[i+][j]);
}
double ans=;
for(int j=;j<=n;j++) ans+=j*f[n][j];
printf("%.2lf\n",ans);
}

100

/*
期望的分:40
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,x,sum,ans=0x7f7f7f7f;
int v[],f[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int cmp(int a,int b){
return a>b;
}
void dfs(int now,int tot){
if(tot<) return ;
if(now==n+){
ans=min(ans,tot);
return ;
}
dfs(now+,tot-v[now]);
dfs(now+,tot);
}
int main(){
freopen("cake.in","r",stdin);
freopen("cake.out","w",stdout);
n=read();x=read();
for(int i=;i<=n;i++){
v[i]=read();
sum+=v[i];
}
if(sum<=x){ printf("%d\n",x-sum);return ; }
if(n<){
sort(v+,v++n,cmp);
dfs(,x);
cout<<ans;
}
else{
for(int i=;i<=n;i++)
for(int j=x;j>=v[i];j--)
f[j]=max(f[j],f[j-v[i]]+v[i]);
cout<<x-f[x];
}
}

50分暴力

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,x,O,tot;
int a[],c[][];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
void dfs(int l,int r,int sum){
c[O][++tot]=sum;
for(int i=l;i<=r;i++)
if(sum+a[i]<=x)
dfs(i+,r,sum+a[i]);
}
int build(int l,int r,int o){
O=o;tot=;
dfs(l,r,);
return tot;
}
int main(){
scanf("%d%d",&n,&x);
for(int i=;i<=n;i++) a[i]=read();
int A=build(,n/,);
int B=build(n/+,n,);
sort(c[]+,c[]+A+);
sort(c[]+,c[]+B+);
int now=B,ans=;
for(int i=;i<=A;i++){
while(c[][i]+c[][now]>x&&now) now--;
if(now==) break;
ans=max(ans,c[][i]+c[][now]);
}
printf("%d\n",x-ans);
}

100

/*
期望得分:50
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod 1000000007
using namespace std;
long long ans;
int h,w,m,n;
int map1[][];
int x1[],y1[],x2[],y2[],v[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
bool judge1(){
for(int k=;k<=n;k++){
int maxn=;
for(int i=x1[k];i<=x2[k];i++)
for(int j=y1[k];j<=y2[k];j++)
maxn=max(maxn,map1[i][j]);
if(maxn!=v[k]) return false;
}
return true;
}
void sove1(int now){
if(now==w*h+){
if(judge1()){
ans++;
ans%=mod;
}
return ;
}
for(int i=;i<=m;i++){
int cx=now/w+;
int cy=now%w;
if(cy==) cy=w,cx-=;
map1[cx][cy]=i;
sove1(now+);
map1[cx][cy]=;
}
}
long long fastpow(long long a,long long b){
long long s=;
for(;b;b>>=){
if(b&) s=s*a%mod;
a=a*a%mod;
}
return s;
}
int main(){
freopen("grid.in","r",stdin);
freopen("grid.out","w",stdout);
h=read();w=read();m=read();n=read();
for(int i=;i<=n;i++){
x1[i]=read();y1[i]=read();
x2[i]=read();y2[i]=read();
v[i]=read();
}
if(h<=&&w<=&&n<=&&m<=){
sove1();
printf("%I64d\n",ans);
return ;
}
else if(n==){
int p=w*h;
ans=fastpow(m,p);
printf("%I64d\n",ans);
}
else if(n==){
int sum=w*h;
int sx=x2[]-x1[]+;
int zy=y2[]-y1[]+;
int sumn=sx*zy;
long long ans1=fastpow(m,sum-sx*zy);
long long ans2=(fastpow(v[],sumn)-fastpow(v[]-,sumn)+mod)%mod;
ans=ans1*ans2%mod;
printf("%I64d\n",ans);
}
}
/*
3 3 3 1
1 1 2 3 3
*/

50分暴力

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
using namespace std;
typedef long long i64;
const int P=1e9+;
int T,h,w,m,n;
int xs[],ys[],xp,yp,vs[],vp,ts[];
int rc[][],mv[][],as[][];
void mins(int&a,int b){if(a>b)a=b;}
int pw(int a,int n){
int v=;
for(;n;n>>=,a=i64(a)*a%P)if(n&)v=i64(v)*a%P;
return v;
}
int main(){ freopen("grid.in","r",stdin);
freopen("grid.out","w",stdout);
int ans=;
scanf("%d%d%d%d",&h,&w,&m,&n);
xp=yp=vp=;xs[xp++]=;
xs[xp++]=h+;ys[yp++]=;
ys[yp++]=w+;vs[vp++]=m;
for(int i=;i<n;++i){
for(int j=;j<;++j) scanf("%d",rc[i]+j);
xs[xp++]=rc[i][];
xs[xp++]=rc[i][]+;
ys[yp++]=rc[i][];
ys[yp++]=rc[i][]+;
vs[vp++]=rc[i][];
vs[vp++]=rc[i][]-;
}
sort(xs,xs+xp);
xp=unique(xs,xs+xp)-xs-;
sort(ys,ys+yp);
yp=unique(ys,ys+yp)-ys-;
sort(vs,vs+vp);
vp=unique(vs,vs+vp)-vs;
for(int i=;i<xp;++i)
for(int j=;j<yp;++j)
as[i][j]=(xs[i+]-xs[i])*(ys[j+]-ys[j]);
for(int t=;t<n;++t){
rc[t][]=std::lower_bound(xs,xs+xp,rc[t][])-xs;
rc[t][]=std::lower_bound(xs,xs+xp,rc[t][]+)-xs;
rc[t][]=std::lower_bound(ys,ys+yp,rc[t][])-ys;
rc[t][]=std::lower_bound(ys,ys+yp,rc[t][]+)-ys;
rc[t][]=std::lower_bound(vs,vs+vp,rc[t][])-vs;
}/*离散化*/
for(int S=;S<(<<n);++S){
for(int i=;i<xp;++i)
for(int j=;j<yp;++j)
mv[i][j]=vp-;
int s=;
for(int t=;t<n;++t){
int v=rc[t][];
if(S>>t&) s=-s,--v;
for(int i=rc[t][];i<rc[t][];++i)
for(int j=rc[t][];j<rc[t][];++j)
mins(mv[i][j],v);
}
for(int i=;i<vp;++i) ts[i]=;
for(int i=;i<xp;++i)
for(int j=;j<yp;++j)
ts[mv[i][j]]+=as[i][j];
for(int i=;i<vp;++i) s=i64(s)*pw(vs[i],ts[i])%P;
ans=(ans+s)%P;
}
printf("%d\n",(ans+P)%P);
return ;
}

std

2018.11.5 PION模拟赛的更多相关文章

  1. 2018.11.7 PION 模拟赛

    期望:100 + 80 + 75 = 255 实际:0 + 80 + 60 = 140 唉~一天比一天犯的错误智障,感觉noip要凉啊... 吓得我赶紧吃几颗药补补脑子. 奶一下大佬: lgj AK ...

  2. 2018.11.6 PION 模拟赛

    期望:100 + 40 + 50 = 190 实际:60 + 10 + 50 = 120 考得好炸啊!!T1数组开小了炸掉40,T2用 int 读入 long long ,int存储 long lon ...

  3. 2018.11.3 PION模拟赛

    期望:100    实际:100 #include<cstdio> #include<cstring> #include<iostream> #include< ...

  4. 2018 11.2 PION模拟赛

    期望:100 + 50 + 30 = 180 实际:0 + 50 + 30 =80 期望:100   实际:0 数值有负数,边界应该设为-0x7f       此处 gg /* 期望的分:50+ */ ...

  5. 2018 11.1 PION 模拟赛

    期望:250  100+100+50 实际:210   80+100+30 期望:100   实际:80 最后:两个点T了.可能是求逆元的方法太慢了,也可能是闲的又加了一个快速乘的原因. #inclu ...

  6. 11.7 NOIP模拟赛

    目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...

  7. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

  8. EZ 2018 06 17 NOIP2018 模拟赛(十九)

    这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...

  9. EZ 2018 06 10 NOIP2018 模拟赛(十八)

    好久没写blog&&比赛题解了,最近补一下 这次还是很狗的,T3想了很久最后竟然连并查集都忘写了,然后T2map莫名爆炸. Rating爆减......链接不解释 好了我们开始看题. ...

随机推荐

  1. Oracle ORA

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  2. js图片轮播效果常见的产品无缝轮播

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. python实现: protobuf解释器

    之前项目为了自动化,所以写一个protobuf的解释器,用来生成项目所需的格式. 当然现在通过以下链接的指导,跳过手工分析,直接生成代码了. https://developers.google.com ...

  4. docker新手入门(基本命令以及介绍)

    Docker 的核心内容 镜像 (Image) 容器 (Container) 仓库 (Repository) Registry 用来保存用户构建的镜像 docker的开始使用: 1. docker  ...

  5. uva1612 Guess

    和cf的打分有点像啊 因为一共只有三道题,所以每个人的得分最多有8种可能性.把这8种可能性都算出来,存在数组里,排好序备用排名就是一个天然的链表,给出了扫描的顺序扫描时,维护两个变量:前一个playe ...

  6. Oracle————存储过程与函数

    存储过程存储过程参数模式包括IN.OUT. IN OUT. IN(默认参数模式):表示当存储过程别调用时,实参值被传递给形参:形参起变量作用,只能读该参数,而不能修改该参数.IN模式参数可以是变量或表 ...

  7. NETCORE使用DB First

    1)引用 (1)Install-Package Microsoft.EntityFrameworkCore (2)Install-Package Microsoft.EntityFrameworkCo ...

  8. hdu3404 Switch lights

    题目描述 题解: 首先,由$SG$定理得SG(x,y)=mex(SG(x',y)^SG(x,y')^SG(x',y'))(x'<x,y'<y) 这里的$SG(x,y)$叫$Nim$积. $ ...

  9. Django中的Cookie、Session、Token

    Cookie : 指望着为了辨别用户身份.进行会话跟踪而存储在用户本地的数据(通常经过加密),是由服务端生成,发送给客户端浏览器,浏览器会将Cookie以key/value保存,下一请求同一网站是就发 ...

  10. tomcat域名配置

    修改tomcat目录下的web配置文件 vim conf/server.xml 在host标签内添加 <Context path="bbs" docBase="/a ...