2017.7.15清北夏令营精英班Day1解题报告
成绩:
预计分数: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解题报告的更多相关文章
- 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]
P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 ...
- 洛谷P1650 赛马[2017年5月计划 清北学堂51精英班Day1]
P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负者这 ...
- 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]
题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素 ...
- 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]
P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...
- 2017 济南精英班 Day1
不管怎么掰都是n*m-1 #include<cstdio> using namespace std; int main() { freopen("bpmp.in",&q ...
- 2017 清北学堂 Day 6终极考试报告
预计分数: 100+70+70 = 240 实际假分数 : 40+80+70= 190 in cena(好吧不得不承认这个分数,,,,,,=.=) 实际真分数 : 100+80+100 = 280 ...
- 10.27night清北刷题班
/* 枚举每个部分的总和,利用前缀和进行检验. 如果能分成4部分就一定能分成2部分,就筛了一边素数优化.清空数组!!! */ #include<bits/stdc++.h> #define ...
- 清北刷题班day3 morning
P99zhx: 竞赛时间:???? 年?? 月?? 日??:??-??:??题目名称 a b c名称 a b c输入 a.in b.in c.in输出 a.out b.out c.out每个测试点时限 ...
- 清北学堂学习总结 day1 数据结构 练习
1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Maste ...
随机推荐
- 提示“CD/DVD找不到媒体所需的驱动”
最近在帮我姐安装win7系统时提 示“CD/DVD找不到媒体所需的驱动”,我用的是U盘安装方式,觉得奇怪,那个镜像文件我已经安装过几十次都没有出错,显然是不会有错的.但是新买的电 脑又不会太大的问题, ...
- svn SSL 错误:Key usage violation in certificate has been detected
CentOS/RHEL yum 安装的 subversion 是 1.6.11 版本,连VisualSVN服务器时会有"Key usage violation"的错误 将subve ...
- 分层利器 facade
Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用.
- html IMG 标签水平居中 ,和图片过大 溢出处理
max-width: 100%;//父元素的宽度 display: block; margin: 0 auto; display: table-cell; 垂直居中 vertical-align: m ...
- ZBrush的双十一来了,然鹅...
不管是“光棍节”还是“剁手节” 似乎和我都没有什么关系 事实证明,我错了 今早竟然有不识趣的人发红包祝我单身快乐 纳尼,这是唱的哪一出? 我能直接怼回去,说不领么? 但好像又不是我的风格 哎,一个红包 ...
- utf8_general_ci、utf8_unicode_ci和utf8_bin的区别(转载)
例如: CREATE DATABASE IF NOT EXISTS redmine DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE DATAB ...
- eclipse中的maven项目部署到tomcat中
http://www.cnblogs.com/guodefu909/p/4874549.html
- SPOJ DISQUERY LCA + 倍增
裸题,如此之水- Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn ...
- ToDoList(原生JS)了解一下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 更新时间戳.txt
UPDATE bbs2 INNER JOIN time1 ON bbs2.AnnounceID = time1.AnnounceID SET bbs2.asptime = time1.asptime