成绩:满分300,我得了200,

1:90//前两个题目都是模拟,没用到什么其他算法,第一题有可能少考虑了一点细节

2:100

3:10//感觉是个DP,但是毫无思路,只打了个普通背包,10分而已。

题目+数据:http://pan.baidu.com/s/1bpj3SR1

下面是我的代码:

这个题目中我为了得到部分分,而特别判断了几组数据。

T1:

 /*
以后一定要仔细读数据范围,一定要。
数据范围中:20%的数据,只有秒数可能不同,言外之意就是可能相同。
而我的程序因为没有考虑到,时间相同时直接输出0000,。O__O"… 一个小技巧:计算时间时,可以把所有的时间都换算成秒,直接总秒数1-秒数2,不仅不会溢出,而且也方便计算。
*/
#include<iostream>
using namespace std;
#include<cstdio>
typedef long long ll;
struct Tim{
int n,y,r,x,f,m;
}tim1,tim2;
long long ans=;
int mon[]={,,,,,,,,,,,,};
bool is_runnian(int x)
{
if(x%==) return true;
if(x%!=&&x%==) return true;
return false;
} void input()
{
scanf("%d-%d-%d %d:%d:%d",&tim1.n,&tim1.y,&tim1.r,&tim1.x,&tim1.f,&tim1.m);
scanf("%d-%d-%d %d:%d:%d",&tim2.n,&tim2.y,&tim2.r,&tim2.x,&tim2.f,&tim2.m);
}
int main()
{
// freopen("two.in","r",stdin);
// freopen("two.out","w",stdout);
input();
if(tim1.n==tim2.n&&tim1.y==tim2.y&&tim1.r==tim2.r)
{
ans=(ll)(tim2.x*+tim2.f*+tim2.m)-(tim1.x*+tim1.f*+tim1.m);
}
else if(tim1.n==tim2.n)
{
ll d1=,d2=;
for(int i=;i<tim1.y;++i)
d1+=mon[i];
if(is_runnian(tim1.n)&&tim1.y>) d1++;
for(int i=;i<tim2.y;++i)
d2+=mon[i];
if(is_runnian(tim2.n)&&tim2.y>) d2++;
d1+=tim1.r;
d2+=tim2.r;
ans=(ll)(d2**+tim2.x*+tim2.f*+tim2.m)-(ll)(d1**+tim1.x*+tim1.f*+tim1.m); }
else{
ll d1=,d2=;
for(int i=;i<tim1.n;++i)
if(is_runnian(i)) d1+=;
else d1+=;
for(int i=;i<tim2.n;++i)
if(is_runnian(i)) d2+=;
else d2+=;
for(int i=;i<tim1.y;++i)
d1+=mon[i];
if(is_runnian(tim1.n)&&tim1.y>) d1++;
for(int i=;i<tim2.y;++i)
d2+=mon[i];
if(is_runnian(tim2.n)&&tim2.y>) d2++;
d1+=tim1.r;
d2+=tim2.r;
ans=(ll)(d2**+tim2.x*+tim2.f*+tim2.m)-(ll)(d1**+tim1.x*+tim1.f*+tim1.m);
}
if(ans) cout<<ans<<"";
else printf("0\n");
fclose(stdin);
fclose(stdout);
return ;
}

T2:

 #include<iostream>
using namespace std;
#include<cstdio>
#define N 100010
#define M 50010
#include<algorithm>
#include<queue>
typedef long long ll;
struct node{
ll tim;
bool operator <(node P)
const{return tim>P.tim;}
};
priority_queue<node>Q;
ll ren[N];
int n,m;
ll read()
{
ll ret=;
char s=getchar();
while(s<''||s>'')
{
s=getchar();
}
while(s>=''&&s<='')
{
ret=ret*+s-'';
s=getchar();
}
return ret;
}
void input()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)
ren[i]=read();
for(int i=;i<=m;++i)
{
node X;
X.tim=ren[i];
Q.push(X);
}
}
int main()
{
freopen("death.in","r",stdin);
freopen("death.out","w",stdout);
input();
for(int i=m+;i<=n;++i)
{
node Now=Q.top();
Q.pop();
Now.tim+=ren[i];
Q.push(Now);
}
printf("%I64d",Q.top());
fclose(stdin);
fclose(stdout);
return ;
}

T3:

解析:

看了看题解:感觉也是这个道理:也许它并不需要Dp,比如在1*(*)中,我们为了价值最大,肯定先放价值大的(因为体积相同嘛),所以我们就把
价值大的先放进去就可以了。
这个题目注意两点即可: .有很多体积相同但是价值不同的物品,可以直接用贪心排序,就可以了。 .不必关注具体的背包中的物品如何放置,只需要关注能放多少个就可以了。因为我们总有办法使放到几乎满了或者满了的情况。 所以思路:
可以直接用n*m/,n*m/,计算数目,但是我们要想一想这样有没有可能出现错误。
n*m/2情况,如果n*m的背包1*2这么放,那么最后只可能
余下一个空位置,那么结果是不错的,但是如果是n*m的情况,我们可以发现,如果满足
n%== && m%== && (n== || m==),如果只放1*,最后会余下一个2*2的正方形不能再放,但是如果直接用n*m/3的话,结果就会多1了。
 #include<iostream>
using namespace std;
#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 10010
int t,n,m,n1,n2,wu1[N],wu2[N];
int sumwu1[N],sumwu2[N];
typedef long long ll;
bool cmp1(int a,int b)
{
return a>b;
}
int main()
{
// freopen("eyesight.in","r",stdin);
// freopen("eyesight.out","w",stdout);
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&n,&m,&n1,&n2);
memset(sumwu1,,sizeof(sumwu1));
memset(sumwu2,,sizeof(sumwu2));
for(int i=;i<=n1;++i)
scanf("%d",&wu1[i]);
for(int i=;i<=n2;++i)
scanf("%d",&wu2[i]);
sort(wu1+,wu1+n1+,cmp1);
sort(wu2+,wu2+n2+,cmp1);
for(int i=;i<=n1;++i)
sumwu1[i]=sumwu1[i-]+wu1[i];
for(int i=;i<=n2;++i)
sumwu2[i]=sumwu2[i-]+wu2[i];
ll ans=;
int dalta;
if(n%==&&m%==&&(n==||m==)) dalta=;
else dalta=n*m%;
int sum=min(n2,(n*m-dalta)/);
for(int i=;i<=sum;++i)
ans=max(ans,(ll)(sumwu2[i]+sumwu1[min(n1,(n*m-*i)>>)]));
cout<<ans<<endl; }
fclose(stdin);
fclose(stdout);
return ;
}

2016.10.29 清北学堂NOIP冲刺班Day1 AM 考试总结的更多相关文章

  1. 10.24afternoon清北学堂刷题班

    /* 这是什么题... */ #include<iostream> #include<cstdio> #include<cstring> #include<q ...

  2. 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]

    P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 ...

  3. 洛谷P1650 赛马[2017年5月计划 清北学堂51精英班Day1]

    P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负者这 ...

  4. 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]

    题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素 ...

  5. 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]

    P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...

  6. 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...

  7. 10月清北学堂培训 Day 7

    今天是黄致焕老师的讲授~ 历年真题选讲 NOIP 2012 开车旅行 小 A 和小 B 决定外出旅行,他们将想去的城市从 1 到 n 编号,且编号较小的城市在编号较大的城市的西边.记城市 i 的海拔高 ...

  8. 10月清北学堂培训 Day 5

    今天是廖俊豪老师的讲授~ T1 第一次想出正解 30 pts: k <= 10,枚举如何把数放到矩阵中,O ( k ! ): 100 pts: 对于矩阵的每一列,我们二分最小差异值,然后贪心去判 ...

  9. 10月清北学堂培训 Day 6

    今天是黄致焕老师的讲授~ T1 自信 AC 莫名 80 pts???我还是太菜了!! 对于每种颜色求出该颜色的四个边界,之后枚举边界构成的矩阵中每个元素,如果不等于该颜色就标记那种颜色不能最先使用. ...

随机推荐

  1. 50个新的汉化Demo!纯前端 Wijmo 放大招

    Wijmo 是为企业应用程序开发而推出的一系列包含 HTML5 和 JavaScript 的开发控件,包含 Wijmo 5 . Wijmo 3 及面向企业级应用的控件金融图表.FlexSheet 和 ...

  2. error C2664: 'BOOL (PCERT_SELECT_STRUCT_A)' : cannot convert parameter 1 from 'CERT_SELECT_STRUCT *' to 'PCERT_SELECT_STRUCT_A'

    1. 编译c++程序出现标题所示错误 2. 解决方法:更改编码设置

  3. 如何在MFC界面开发中响应Button按钮的Down和Up事件

    通过尝试有两种方案可以解决这个问题,第一种方案是通过PreTranslateMessage函数在调度消息之前对消息类型进行筛选,第二种方案是重载CButton类,在重载后的类CForTestButto ...

  4. spring整合hibernate

    spring整合hibernate包括三部分:hibernate的配置.hibernate核心对象交给spring管理.事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更 ...

  5. js中this的绑定

    人们对于this的绑定常常有两个误解,一:指向函数本身,二:指向函数作用域.这两种想法都是错的,this并不指向函数本身,也不指向函数作用域. function foo(){ this.count++ ...

  6. [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  7. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块

    config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...

  8. supermap iclient for js 标签专题图(服务端)

    <!DOCTYPE><html> <head> <meta http-equiv="Content-Type" content=" ...

  9. python之import子目录文件

    问题:   在pre_tab.py文件下: print("AA") from test.te import login1 login1() from test.te import ...

  10. 报文格式:xml 、定长报文、变长报文

    目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...