源文件在我的网盘上。链接: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. github的初次体验及管理代码的心得

    周六早上的课上,助教给我们演示了一遍如何上传和下载代码库,新建代码库等等,但是是在linux上的,而我的笔记本的操作系统是win7的.而在教室中的尝试因为网络原因,虽然可以上github的网站,但是下 ...

  2. CSS重点巩固

    一:position定位 a: static 定位 ,HTML元素的默认值,即没有定位,元素出现在正常的流中.静态定位的元素不会受到top, bottom, left, right影响. b: fix ...

  3. 问问题_Java一次导出百万条数据生成excel(web操作)

    需求:在web页面操作,一次导出百万条数据并生成excel 分析: 1.异步生成Excel,非实时,完成后使用某种方式通知用户 2.生成多个excel文件,并打包成zip文件,因为一个excel容纳不 ...

  4. __HTML_5读取文件API

    //HTML5 __FileSystemApi <!doctype html> <html> <head> <meta charset="utf-8 ...

  5. Server Data Synchronization Via Linux rsync、rsync+inotify Between Load Balance Server

    目录 . 远程文件同步的应用场景 . rsync+crontab . rsync+inotify 1. 远程文件同步的应用场景 在负载均衡集群的应用场景中,往往在多台web server的前端有一个提 ...

  6. Ext comboBox的remote和local的区别

    remote模式下不能使用模糊查询的功能 而local模式下可以实现模糊查询的功能 如果非要实现模糊查询的功能,最好就是提前把数据查询出来,缓存到本地,然后再用local模式 且,改个属性,改成可编辑 ...

  7. MyEclipse使用SVN进行项目版本控制

    一.搭建SVN服务器. 例如,使用VisualSVN Server,下载后安装. (1)在Repositories(版本库)上右击,新建Repository,选择Regular FSFS reposi ...

  8. MyEclipse------各种问题解决方法

    1.汉化后如何变为英文版:找到myeclipse.ini文件,改为:language=enlanguage=zh为中文 2.解决版本不匹配问题:http://blog.sina.com.cn/s/bl ...

  9. Java初学(三)

    一.使用键盘录入数据 三步:1.导入包:import  java.util.Scanner; 2.创建键盘录入对象:Scanner sc=new  Scanner(System.in);   3.通过 ...

  10. C++中debug和release的区别 . 转载

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...