不管怎么掰都是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的更多相关文章

  1. 2017.7.15清北夏令营精英班Day1解题报告

    成绩: 预计分数:20+10+40 实际分数:100+10+40. 一百三十多人的比赛全场rand7还水了个鼠标+键盘 unbelievable! 考试题目链接: https://www.luogu. ...

  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. 2017 济南综合班 Day 7

     a 两个指针L.R R开始指向恰好[R,n]有不超过k个逆序对的地方 随着L的右移,R指针只会右移 逆序对有2部分 1.L左侧与其他位置形成的逆序对 2.R右侧与其他位置形成的逆序对 用树状数组分别 ...

  7. 2017 济南综合班 Day 6

    循环移动 (cyclic.cpp/c/pas) (1s/256M) 问题描述 给出一个字符串S与N个操作.每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K ...

  8. 2017 济南综合班 Day 5

    毕业考试 (exam.cpp/c/pas) (1s/256M) 问题描述 快毕业了,Barry希望能通过期末的N门考试来顺利毕业.如果他的N门考试平均分能够达到V分,则他能够成功毕业.现在已知每门的分 ...

  9. 2017 济南综合班 Day 4

    T1 外星人 二维前缀和 #include<cstdio> #define N 1001 using namespace std; bool v[N][N]; int sum[N][N]; ...

随机推荐

  1. LeetCode 454. 4Sum II (C++)

    题目: Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are su ...

  2. 团队计划第二期Backlog

    团队计划第二期Backlog 一. 计划会议过程        今天中午我们小组就我们团队开发第二阶段的冲刺召开计划会议,总结了第一阶段开发的问题.不足和经验教训,然后对本次冲刺计划进行了合理的规划和 ...

  3. Eclipse/myEclipse 代码提示/自动提示/自动完成设置(转)

    一.设置超级自动提示 设置eclipse/myEclipse代码提示可以方便开发者,不用在记住拉杂的单词,只用打出首字母,就会出现提示菜单.如同dreamweaver一样方便. 1.菜单window- ...

  4. HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题

    参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上:  迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...

  5. 软工网络15个人作业4--alpha阶段个人总结

    一.个人总结 自我评价表 类别 具体技能和面试问题 现在的回答 毕业找工作 语言 最拿手的语言之一,代码量是多少 java,代码量大概两三千行吧 语言 最拿手的语言之二,代码量是多少 python,代 ...

  6. laravel获取当前认证用户登录

    可以通过Auth门面访问认证用户: 要在方法上面声明 use Auth: 获取当前认证用户使用 $user = Auth::user(); 获取用户认证ID $id = Auth::id;

  7. 小记IptabLes和IptabLex病毒清理过程

    去年有台Linux服务器被黑了,看了500万行日志(现在觉得当时好厉害呀),反正当时的日志文件有700Mb以上大.前两天师兄告诉我,信息中心的老师给他说我们有台服务器应该是被人入侵了,当作内网的跳板, ...

  8. 关于WPS页面横向问题

    上图 即可进行横向竖向页面设置

  9. Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,

    Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference err ...

  10. webgl 深度缓冲

    传统的画2d画布就是后画的会盖在先画的上面,但是在画一些三维图形时,这很难控制 深度缓冲区的作用就是区分颜色所在的层次,防止把被遮挡住的颜色显示出来. 深度缓冲很强大,用起来很简单 开启深度缓冲(测试 ...