成绩:

预计分数:20+10+40

实际分数:100+10+40.

一百三十多人的比赛全场rand7还水了个鼠标+键盘

unbelievable!

考试题目链接:

https://www.luogu.org/team/show?teamid=1353

T1

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define lli long long
using namespace std;
const int mod=;
void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
lli n,m;
int fastmul(int x,int p)
{
int now=x;
int ans=;
while(p)
{
if(p&)
{
--p;
ans=(ans+now)%mod;
}
p>>=;
now=(now+now)%mod;
}
return (ans-)%mod;
}
int main()
{
freopen("bpmp.in","r",stdin);
freopen("bpmp.out","w",stdout);
//read(n);read(m);
cin>>n>>m;
cout<<fastmul(n,m)%mod;
return ;
}

T1快速乘

一开始搞了个贪心不知道对不对,所以不期望能拿多少分,但没想到居然AC了

而且我以为这个题没有那么水于是就写了个快速乘、

事实上只要输出(n*m-1)%mod 就能AC,

(表示差点被卡成rank8,没奖)

http://www.cnblogs.com/zwfymqz/p/7186080.html

T2

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<cstdlib>
using namespace std;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
int n,m;
struct node
{
int a[][];
int nowmaxn;
int bgx,bgy,edx,edy;
}now,nxt;
int ans=-0x7ffff;
queue<node>q;
int tot=;
inline void calc()
{
/*memset(nxt.a,0,sizeof(nxt.a));
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
nxt.a[i][j]=now.a[i][j];*/
nxt=now;
}
inline void print()
{ for(int i=now.bgx;i<=now.edx;i++)
{
for(int j=now.bgy;j<=now.edy;j++)
printf("%d ",now.a[i][j]);
printf("\n");
}
printf("*********************************\n");
}
inline void getans()
{
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
ans=max(ans,now.a[i][j]);
}
void check()
{
tot++;
//cout<<tot<<"---"<<endl;
if(tot>)
{
cout<<ans;
exit();
} }
inline void bfs(int hc,int lc)
{
q.push(now);
while(!q.empty())
{
now=q.front();
q.pop();
int num=;
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
if(now.a[i][j]>)
num+=now.a[i][j],check();
if(ans>num)
continue; getans();
calc();
// print();
for(int i=now.bgy;i<now.edy;i++)//横向折叠
{
for(int j=;j<=(min((i-now.bgy),(now.edy-i))+);j++)
{
for(int k=;k<=now.edx;k++)
{
nxt.a[k][i+j]+=nxt.a[k][i-j+];
nxt.a[k][i-j+]=;
check();
}
}
// cout<<now.bgy<<"&"<<i<<endl;
nxt.bgy=i+;
// cout<<nxt.bgy<<"^"<<endl;
nxt.edy=max(now.edy,i+i-now.bgy+);
nxt.bgx=now.bgx;
nxt.edx=now.edx;
q.push(nxt);
calc();
}
for(int i=now.bgx;i<now.edx;i++)
{
for(int j=;j<=(min((i-now.bgx),(now.edx-i+))+);j++)
{
for(int k=;k<=now.edy;k++)
{
nxt.a[i+j][k]+=nxt.a[i-j+][k];
nxt.a[i-j+][k]=;
check();
}
}
nxt.edy=now.edy;
nxt.bgy=now.bgy;
nxt.bgx=i+;
nxt.edx=max(now.edx,i+i-now.bgx+);
q.push(nxt);
calc();
}
} }
int main()
{
freopen("cfyw.in","r",stdin);
freopen("cfyw.out","w",stdout);
read(n);read(m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
read(now.a[i][j]);
now.bgx=now.bgy=;
now.edx=n;
now.edy=m;
bfs(,);
printf("%d",ans);
return ;
}

T2爆搜

一开始以为是矩阵什么乱七八糟的肯定不会于是就写超级暴力广搜,

本来以为能过50%的数据结果发现连4*4的都跑不出来。

没办法加了个最优性剪枝又加了个卡时,

结果。

除了第一个点AC其他全MLE,,,,,,,,,,,,,

What' a pity!

http://www.cnblogs.com/zwfymqz/p/7185970.html

T3

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define lli long long int
using namespace std;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
int mod=;
int n,m;
int ans=;
int gcd(int a,int b)
{
return b==?a%mod:gcd(b,a%b)%mod;
}
int hash[];
int main()
{
//freopen("hoip.in","r",stdin);
// freopen("hoip.out","w",stdout);
read(n);read(m);
if(n<&&m<)
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
ans=(ans+gcd(i,j))%mod;
printf("%d",ans%mod);
}
else if(n>&&m>)
{
printf("");
}
else
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(hash[(i*)%+(j*)%])
{
ans+=hash[(i*)%+(j*)%];
continue;
}
lli p=gcd(i,j)%mod;
lli a=i,b=j;
while(a<n&&b<m)
{
p=p+p;
a=a+a;
b=b+b;
hash[(i*)%+(j*)%]=p;
}
}
printf("%d",ans);
}
return ;
}

T3暴力+打表

暴力暴力暴力!!!

http://www.cnblogs.com/zwfymqz/p/7189521.html

总结:

这次考试也是比较无语,

感觉自己运气成分比较大,

全场40多个140分.......

也就是说T2接近150行的暴力救了我一命=.=///

不过我们学校居然有A了T3的(但那孩子T1炸了。。。)

以后继续努力吧!

2017.7.15清北夏令营精英班Day1解题报告的更多相关文章

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

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

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

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

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

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

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

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

  5. 2017 济南精英班 Day1

    不管怎么掰都是n*m-1 #include<cstdio> using namespace std; int main() { freopen("bpmp.in",&q ...

  6. 2017 清北学堂 Day 6终极考试报告

    预计分数: 100+70+70 = 240 实际假分数 : 40+80+70= 190  in cena(好吧不得不承认这个分数,,,,,,=.=) 实际真分数 : 100+80+100 = 280 ...

  7. 10.27night清北刷题班

    /* 枚举每个部分的总和,利用前缀和进行检验. 如果能分成4部分就一定能分成2部分,就筛了一边素数优化.清空数组!!! */ #include<bits/stdc++.h> #define ...

  8. 清北刷题班day3 morning

    P99zhx: 竞赛时间:???? 年?? 月?? 日??:??-??:??题目名称 a b c名称 a b c输入 a.in b.in c.in输出 a.out b.out c.out每个测试点时限 ...

  9. 清北学堂学习总结 day1 数据结构 练习

    1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Maste ...

随机推荐

  1. Swift - 反射(Reflection)的介绍与使用样例(附KVC介绍)

    1,反射(Reflection) 对于C#.Java开发人员来说,肯定都对反射这个概念相当熟悉.所谓反射就是可以动态获取类型.成员信息,同时在运行时(而非编译时)可以动态调用任意方法.属性等行为的特性 ...

  2. spring注解略解

    @Scope("prototype") 如果ACTION中不@Scope("prototype"),有可能报找不到XXXACTION的错误!写上这个就表示每次请 ...

  3. 给html里面的class添加一个判断语句,判断当前class是否显示(vue)

    当我们想判断这个class是否出现时,其实有很多方法, 我这个是做了一个选项卡,当点击的时候navTitle的值和循环的item的值相同时class就等于borderbottom, 这样我们点击的图层 ...

  4. centos7编译安装mysql5.6

    先安装如下依赖包: $ yum -y install make gcc-c++ cmake bison-devel  ncurses-devel 下载MySQL5.6.14安装包,https://pa ...

  5. 「BZOJ3339」Rmq Problem(5366)

    题目描述 输入 输出 样例输入 7 5 0 2 1 0 1 3 2 1 3 2 3 1 4 3 6 2 7 提示 这个题说来也挺有意思的 当时集训的时候遇到了一道类似的题,但是题意与此不同,我太菜了, ...

  6. python笔记3----第一个小爬虫

    1.先看看要爬的网站有没有爬虫协议,可以看该网站有没有robots.txt,如豆瓣的: 2.requests模块:[requests是第三方,代码比python自带的urllib模块简单] 先加载re ...

  7. HDU 4513 吉哥系列故事——完美队形II( Manacher变形 )

    链接:传送门 思路:根据完美队形的定义,可以得知,完美队形实质上是 回文串 + 序列出现峰,因为是在回文串中再次增加了一个要求,所以可以对 Manacher 进行改造,改造的部分应该为暴力匹配的循环 ...

  8. Django安装部署

    MVC模式说明 Model:是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据 View: 是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的 Controlle ...

  9. Tensorflow 之物体检测

    1)安装Protobuf TensorFlow内部使用Protocol Buffers,物体检测需要特别安装一下. # yum info protobuf protobuf-compiler 2.5. ...

  10. Java基础学习总结(64)——Java内存管理

    本文介绍的Java虚拟机(JVM)的自动内存管理机制主要是参照<深入理解Java虚拟机>(第2版)一书中的内容,主要分为两个部分:Java内存区域和内存溢出异常.垃圾回收和内存分配策略.因 ...