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 ...
随机推荐
- SQL Server-聚焦过滤索引提高查询性能
前言 这一节我们还是继续讲讲索引知识,前面我们讲了聚集索引.非聚集索引以及覆盖索引等,在这其中还有一个过滤索引,通过索引过滤我们也能提高查询性能,简短的内容,深入的理解,Always to revie ...
- 僧多粥少?还原 OpenStack 的真实“钱景”
原文链接:http://www.oschina.net/news/57994/openstack-income-analysis 451 Research发布了OpenStack的收入分析预测,指出O ...
- 解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错
1.找到pycharm 目录下的 \helper\packaging_tool.py 文件 2.用新版pycharm 的packaging_tool.py 替换 旧版 同名文件 文件代码如下: imp ...
- js常用正则表达式大全--如:数字,字符等
一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...
- 微电影《Junior·BQB》——剧本
电影名称:<Junior——BQB> 组长: 组员: 导演: 副导演: 分镜/演出: 编剧: 主演: 彬彬:比丘 阿伟:魔女(彬彬姐) 小怪:怪物团长 客串 旁白 友情演出: 恶俗之王 摄 ...
- CodeForces-546D Soldier and Number Game 筛法+动态规划
题目链接:https://cn.vjudge.net/problem/CodeForces-546D 题意 抱歉,我给忘了,现在看题目又看不懂: P 思路 筛法+dp 话说这个函数应该是积性函数,然后 ...
- 字符识别Python实现 图片验证码识别
字符型图片验证码识别完整过程及Python实现 1 摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...
- Java的五大原则
五个基本原则: 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化.单一职责原则可以看做是低耦合.高内聚在面向对象原则上的引申, ...
- 漫说好管理vs.坏管理
天地会珠海分舵注:本文英文版来自Medium今日热点头条.漫画简单明了,全文差点儿没有多余的语言去装饰.两天内获得两千三百多个推荐,且读者的反馈也相当的热烈.中文版由天地会珠海分舵编译后分享给大家. ...
- 51nod 1413:权势二进制
1413 权势二进制 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 一个十进制整数被叫做权势二进制,当他的十进制 ...