2017 济南精英班 Day1

不管怎么掰都是n*m-1
#include<cstdio>
using namespace std;
int main()
{
freopen("bpmp.in","r",stdin);
freopen("bpmp.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
int ans=(1ll*n*m-)%;
printf("%d",ans);
}

将行状态压缩,枚举哪些行被折成了一条
枚举时,上一次选取的行 与 这一次选取的行 奇偶性不同,这两行才能折到一起
选取列也要求 上一个选的列与这一个选的列奇偶性不同
dp计算这一条上选哪些列
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,ans;
int a[][],c[];
int dp(int s)
{
bool f=false;
memset(c,,sizeof(c));
for(int i=;i<n;i++)
if(s&(<<i))
for(int j=;j<m;j++)
c[j]+=a[i][j];
for(int j=;j<m;j++)
if(c[j]>) { f=true; break; }
if(!f) return -2e9;
int c0=,c1=,x;
for(int i=;i<m;i++)
if(i&) c1=max(c[i]+c0,c1);
else c0=max(c[i]+c1,c0);
return max(c1,c0);
}
void dfs(int now,int last,int state)
{
if(now==n)
{
ans=max(ans,dp(state));
return;
}
if(last==- || ((now-last)&)) dfs(now+,now,state|(<<now));
dfs(now+,last,state);
}
int main()
{
freopen("cfyw.in","r",stdin);
freopen("cfyw.out","w",stdout);
scanf("%d%d",&n,&m);
ans=-2e9;
for(int i=;i<n;i++)
for(int j=;j<m;j++)
scanf("%d",&a[i][j]),ans=max(ans,a[i][j]);
if(ans>) dfs(,-,);
printf("%d",ans);
}

推公式+除法分块
http://www.cnblogs.com/TheRoadToTheGold/p/6696450.html
#include<cstdio>
#include<algorithm>
#define N 10000001
#define mod 998244353
using namespace std;
int p[],phi[N],cnt;
long long sum[N];
bool vis[N];
void pre(int n)
{
phi[]=;
for(int i=;i<=n;i++)
{
if(!vis[i])
{
vis[i]=true;
phi[i]=i-;
p[++cnt]=i;
}
for(int j=;j<=cnt;j++)
{
if(i*p[j]>n) break;
vis[i*p[j]]=true;
if(i%p[j]==)
{
phi[i*p[j]]=phi[i]*p[j];
break;
}
else phi[i*p[j]]=phi[i]*(p[j]-);
}
}
for(int i=;i<=n;i++) sum[i]=sum[i-]+phi[i];
}
int main()
{
freopen("hoip.in","r",stdin);
freopen("hoip.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
pre(min(n,m));
long long ans=;
long long j;
for(long long i=;i<=min(n,m);i=j+)
{
j=min(n/(n/i),m/(m/i));
ans=(ans+(sum[j]-sum[i-])*(n/i)%mod*(m/i)%mod)%mod;
}
printf("%I64d",ans);
}
2017 济南精英班 Day1的更多相关文章
- 2017.7.15清北夏令营精英班Day1解题报告
成绩: 预计分数:20+10+40 实际分数:100+10+40. 一百三十多人的比赛全场rand7还水了个鼠标+键盘 unbelievable! 考试题目链接: https://www.luogu. ...
- 洛谷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 济南综合班 Day 7
a 两个指针L.R R开始指向恰好[R,n]有不超过k个逆序对的地方 随着L的右移,R指针只会右移 逆序对有2部分 1.L左侧与其他位置形成的逆序对 2.R右侧与其他位置形成的逆序对 用树状数组分别 ...
- 2017 济南综合班 Day 6
循环移动 (cyclic.cpp/c/pas) (1s/256M) 问题描述 给出一个字符串S与N个操作.每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K ...
- 2017 济南综合班 Day 5
毕业考试 (exam.cpp/c/pas) (1s/256M) 问题描述 快毕业了,Barry希望能通过期末的N门考试来顺利毕业.如果他的N门考试平均分能够达到V分,则他能够成功毕业.现在已知每门的分 ...
- 2017 济南综合班 Day 4
T1 外星人 二维前缀和 #include<cstdio> #define N 1001 using namespace std; bool v[N][N]; int sum[N][N]; ...
随机推荐
- Beta周王者荣耀交流协会第六次会议
1.立会照片 成员王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:袁玥 2. 时间跨度 2017年11月15日 19:00 — 19:10 ,总计10分钟. 3. 地点 一食堂 ...
- “Hello World!”团队第三周召开的第三次会议
今天是我们团队“Hello World!”团队第三周召开的第三次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码地址 ...
- 团队开发NABCD
团队成员介绍: 李青:绝对的技术控,团队中扮演“猪”的角色,勤干肯干,是整个团队的主心骨,课上紧跟老师的步伐,下课谨遵老师的指令,课堂效率高,他的编程格言“没有编不出来的程序,只有解决不了的bug”. ...
- 团队Alpha冲刺(四)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:何家伟 组员8:政演 组员9:鸿杰 组员10:刘一好 组员:何宇恒 展示组内最新 ...
- Nodejs学习笔记(一)--- 操作Mysql数据库
对于一门语言的学习,我个人觉得最好的方式就是通过一个项目来展示,所以从基本的一些模块去了解是最好的方式对于Mysql怎么去链接数据库这个我是在网上找到的(其实一直想找官方文档的,发现没有它的踪迹,(后 ...
- QCryptographicHash实现哈希值计算,支持多种算法
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QCryptographicHash实现哈希值计算,支持多种算法 本文地址:http: ...
- 【Leetcode】725. Split Linked List in Parts
Given a (singly) linked list with head node root, write a function to split the linked list into k c ...
- Spring注解原理
一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解 ...
- 下载文件 通过a 标签 请求某个servlet进行下载的
下载文件 通过a 标签 请求某个servlet进行下载的
- solr源码分析之searchComponent
上文solr源码分析之数据导入DataImporter追溯中提到了solr的工作流程,其核心是各种handler. handler定义了各种search Component, @Override pu ...