源文件在我的网盘上。链接:http://pan.baidu.com/s/1qWPUDRm 密码:k52e

(只有机智的人才能看到我的链接)

机智的双重下划线~~~

T1

T1就是一个递推,这题目把我恶心到了。。。用double即可。上 代码。

#include <cstring>
#include <cstdio>
int n,i,j,k,m,l,t,v,u,s,d;
int coml[2000],comr[2000],man;
double mat[2000][2000],mat2[2000],mat3[2000],ma;
#define ubit 0xffffffff
int main(){
freopen("elimination.in","r",stdin);
freopen("elimination.out","w",stdout);
scanf("%d",&n);
m=1<<n;
for(i=0;i<m;++i){
mat2[i]=1.0;
coml[i]=i^1;
comr[i]=i^1;
for(j=0;j<m;++j){
scanf("%d",&k);
mat[i][j]=(k+0.0)/100;
}
}
for(i=1;i<=n;++i){
u=1<<i;
t=(ubit>>(i+1))<<(i+1);
for(j=0;j<m;++j){
mat3[j]=0.0;
for(k=coml[j];k<=comr[j];++k){
mat3[j]+=mat2[k]*mat[j][k];
}
mat3[j]*=mat2[j];
l=coml[j]&t;
if(u&coml[j]){
coml[j]=l;
comr[j]=l+u-1;
}else{
l|=u;
coml[j]=l;
comr[j]=l+u-1;
}
}
for(j=0;j<m;++j){
mat2[j]=mat3[j];
}
}
ma=mat2[0];
for(i=1;i<m;++i){
if(mat2[i]>ma){
ma=mat2[i];
man=i;
}
}
printf("%d\n",man+1);
return 0;
}

T2

差分约束系统。。。调得我快Shit了(然后。。我会告诉你我还没过么?)

上 代码。

#include <cstdio>
#include <cstring>
#define lowbit(x) (x&-x)
int next[40000],to[40000],f[40000],len[40000],head[40000],hl,i,j,k,h;
int ip,a,b,c,pp[40000],ppl,n;
inline void addEdge(int f,int t,int w){
++hl;
next[hl]=head[f];
to[hl]=t;
len[hl]=w;
head[f]=hl;
}
int q[400000],qt,qh;
bool iq[40000];
void spfa(){
memset(f,0x7f,sizeof f);
qh=0;
qt=1;
iq[n+1]=1;
q[0]=n+1;
f[n+1]=0;
while(qh!=qt){
a=q[qh];
//printf("( %d ):#%d\n",qh,a);
iq[a]=0;
for(b=head[a];b!=0;b=next[b]){
//printf("Access #%d: pre dist %d , suf dist %d\n",to[b],f[to[b]],f[a]+len[b]);
if(f[a]+len[b]<f[to[b]]){
//printf("Relax #%d\n",to[b]);
f[to[b]]=f[a]+len[b];
if(!iq[to[b]]){
iq[to[b]]=true;
q[qt++]=to[b];
}
}
}
++qh;
}
}
int main(){
freopen("trees.in","r",stdin);
freopen("trees.out","w",stdout);
scanf("%d%d",&n,&h);
//printf("1 \n");
for(i=0;i<h;++i){
scanf("%d%d%d",&a,&b,&c);
addEdge(b,a-1,-c);
}
//printf("2 ");
for(i=0;i<=n;++i) addEdge(n+1,i,0);
for(i=0;i<n;++i){
addEdge(i,i+1,1);
addEdge(i+1,i,0);
}
spfa();
a=0x7fffffff;
for(i=0;i<=n;++i) if(f[i]<a) a=f[i];
for(i=0;i<=n;++i) f[i]-=a;
printf("%d\n",f[n]);
return 0;
}

T3

一道机智的二分题目

先二分答案,再用DP检测答案是否可以。符合单调性(废话)。

DP方程:

$F\left[ i,j\right] =max \left\{\left\lfloor \frac{s-k\cdot a_i}{b_i} \right\rfloor +F\left[ i-1,j-k\right]  \forall k \in \left[ 0,min\left\{ \left\lfloor \frac{s}{a_i} \right\rfloor ,j \right\}\right]\right\}$

//上代码
#include <cstdio>
#include <cstring>
int n,m,i,j,k,l,r,ans,mid,t;
int p[1000][2],f[2][1000];
int now,pp,t2;
bool dp(int s){
memset(f,-1,sizeof f);
now=0,pp=1;
f[0][0]=0;
for(i=0;i<n;++i){
now = pp^now;
pp = pp^now;
now = pp^now;
for(j=0;j<=m;++j){
t=s/p[i][0];
t=t<j?t:j;
for(k=0;k<=t;++k){
if(f[pp][j-k]!=-1){
t2=(s-k*p[i][0])/p[i][1]+f[pp][j-k];
f[now][j]=(f[now][j]<t2?t2:f[now][j]);
}
}
}
}
return f[now][m]>=m;
}
int main(){
freopen("software.in","r",stdin);
freopen("software.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i){
scanf("%d%d",p[i],p[i]+1);
}
l=0,r=0x7fffffff;
while(l<=r){
if(dp(mid=(l+r)/2)){
ans=mid;
r=mid-1;
}else{
l=mid+1;
}
}
printf("%d\n",ans);
return 0;
}

2模02day1题解的更多相关文章

  1. [18/12/3]蓝桥杯 练习系统 入门级别 Fibonacci数列求模问题 题解思路

    前言略. 看到这个题目本来应该很高兴的,因为什么,因为太TM的基础了啊! 可是当你用常规方法尝试提交OJ时你会发现..hhh...运行超时..(开心地摇起了呆毛 //Fibonacci数列递归一般问题 ...

  2. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  3. 二模02day1解题报告

    T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...

  4. Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp

    A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  5. ZJOI2019 Day1 题解

    想要继续向前,就从克服内心的恐惧开始. 麻将 题意 在麻将中,我们称点数连续的三张牌或三张点数一样的成为面子,称两张点数一样的牌为对子.一副十四张麻将牌的胡牌条件是可以分成四个面子和一个对子或者分成七 ...

  6. BUPT2017 wintertraining(15) #1 题解

    拖了一周才完成的题解,抛出一个可爱的表情 (っ'-')╮ =͟͟͞͞❤️.对我来说E.F比较难,都是线段树的题,有点久没写了. A - Infinite Sequence CodeForces - 6 ...

  7. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  8. CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】

    反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...

  9. OI队测题解:

    Test 17   T1: 题目大意: 喵星系有n个星球,标号为1到n,星球以及星球间的航线形成一棵树. 所有星球间的双向航线的长度都为1.小昕要在若干个星球建矿石仓库,设立每个仓库的费用为K.对于未 ...

随机推荐

  1. WPF中RadioButton的分组

    当界面上出现多组Radiobutton时,将所有的Radiobutton写在同一个Grid里面,导致系统认为所有的Radiobutton是同一组,造成选择混乱,解决的方法: 1.要为属于同个组的Rad ...

  2. [JQuery EasyUI系列]简介

    一.jQuery EasyUI是一个基于jQuery的框架,继承了各种用户界面插件. 二.jQuery EasyUI框架提供了创建网页所需的一切,可以轻松建立站点. easyui是一个基于jQuery ...

  3. Address already in use: JVM_Bind<null>:80

    Address already in use: JVM_Bind<null>:80 咱还是闲话少说,直接切入正题. 起因: 一直用Tomcat,但是前几天突然报错: java.net.Bi ...

  4. 001-编译hadoop-2.5.2总结

    前两天废了很大的劲来对hadoop-2.5.2进行64位系统的手动编译,由于对linux系统环境以及hadoop本身的不熟悉,编译过程中也出现了很多的问题,在此记录一下,对自己以后再次编译和看到此文章 ...

  5. [转]ACM进阶计划

    ACM进阶计划  大学期间,ACM队队员必须要学好的课程有: lC/C++两种语言 l高等数学 l线性代数 l数据结构 l离散数学 l数据库原理 l操作系统原理 l计算机组成原理 l人工智能 l编译原 ...

  6. 初次使用erlang的concurrent

    如果不是它骇人听闻的并行性能,几乎不会考虑去学习这么一门语言.因为它的并行,我看到的是一块用软件写出来的电路板,是的,它几乎就是把电脑变成了一个可以自由编写逻辑的芯片. 例程来自这里:http://w ...

  7. hadoop单节点windows 7 环境搭建

    前言 Windows下运行,通常有两种方式:一种是用VM方式安装一个,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处是使用比较方便,安装过程 ...

  8. FireFox & Chrome 使用技巧

    一 FireFox 1 安装调试工具 Firebug , HttpRequester 2 打开响应式布局 打开菜单 -> 开发者 -> 响应式设计视图 二 Chrome 1 修改Chrom ...

  9. stl 迭代器(了解)

    STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的. 对应于它们所支持的操作,共有五种 iterators ...

  10. Spring IoC、DI入门小程序

    Alt+/智能提示xml配置文件节点及属性:在接口上使用Ctrl+T可以提示其实现类 一.IoC控制反转(将创建对象的权利交给spring)入门小程序 1.引入jar包 2.工程基本结构 3.新建Us ...