Codeforces_821
A.直接判断每一个数。
#include<bits/stdc++.h>
using namespace std; int n,a[][]; int main()
{
ios::sync_with_stdio();
cin >> n;
for(int i = ;i <= n;i++)
{
for(int j = ;j <= n;j++) cin >> a[i][j];
}
for(int i = ;i <= n;i++)
{
for(int j = ;j <= n;j++)
{
if(a[i][j] == ) continue;
int flag = ;
for(int ii = ;ii <= n;ii++)
{
for(int jj = ;jj <= n;jj++)
{
if(a[ii][j]+a[i][jj] == a[i][j]) flag = ;
}
}
if(!flag)
{
cout << "No" << endl;
return ;
}
}
}
cout << "Yes" << endl;
return ;
}
B.枚举直线上每一点,x,y坐标分开算,求和公式。
#include<bits/stdc++.h>
using namespace std; long long m,b; int main()
{
ios::sync_with_stdio();
cin >> m >> b;
long long ans = ;
for(int y = ;y <= b;y++)
{
long long x = (b-y)*m;
ans = max(ans,(x+)*(y+)*y/+(y+)*(x+)*x/);
}
cout << ans << endl;
return ;
}
C.模拟栈,每次需要整理的时候,把栈中所有出栈,因为底下的已经有序,不需要再去关注它们。
#include<bits/stdc++.h>
using namespace std; int n;
stack<int> s;
string ss; int main()
{
ios::sync_with_stdio();
cin >> n;
int now = ,ans = ;
for(int i = ;i <= *n;i++)
{
cin >> ss;
if(ss == "add")
{
int x;
cin >> x;
s.push(x);
}
else
{
if(s.empty())
{
now++;
continue;
}
if(now == s.top())
{
s.pop();
now++;
}
else
{
ans++;
now++;
while(!s.empty()) s.pop();
}
}
}
cout << ans << endl;
return ;
}
D.直接O(k^2)的最短路,转移的时候若两个点相邻,则dis不用+1,若某一坐标之差≤2,则可以转移dis+1,若终点不lit,设一个(n+1,m+1)的点,最后结果回自动+1。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std; int n,m,k,x[],y[],vis[] = {},dis[] = {}; int main()
{
ios::sync_with_stdio();
cin >> n >> m >> k;
int s,t = ;
for(int i = ;i <= k;i++)
{
cin >> x[i] >> y[i];
if(x[i] == && y[i] == ) s = i;
if(x[i] == n && y[i] == m) t = i;
}
if(!t)
{
t = ++k;
x[k] = n+;
y[k] = m+;
}
memset(dis,0x3f,sizeof(dis));
dis[s] = ;
for(int j = ;j <= k;j++)
{
int pos = -,minn = INF;
for(int i = ;i <= k;i++)
{
if(!vis[i] && dis[i] < minn)
{
pos = i;
minn = dis[i];
}
}
if(pos == -) break;
vis[pos] = ;
for(int i = ;i <= k;i++)
{
if(vis[i]) continue;
if(abs(x[pos]-x[i])+abs(y[pos]-y[i]) == ) dis[i] = min(dis[i],dis[pos]);
else if(abs(x[pos]-x[i]) <= || abs(y[pos]-y[i]) <= ) dis[i] = min(dis[i],dis[pos]+);
}
}
if(dis[t] == INF) cout << - << endl;
else cout << dis[t] << endl;
return ;
}
E.对于每一段,可以dp,矩阵快速幂优化,注意每一段结束和每一段开始的时候,把高于c点的值清零。
#include<bits/stdc++.h>
#define MOD 1000000007
using namespace std; int n;
long long k;
struct xx
{
long long m[][];
}; xx mul(xx a,xx b,int len)
{
xx tmp;
for(int i = ;i <= len;i++)
{
for(int j = ;j <= len;j++)
{
tmp.m[i][j] = ;
for(int k = ;k <= len;k++) tmp.m[i][j] = (tmp.m[i][j]+a.m[i][k]*b.m[k][j])%MOD;
}
}
return tmp;
} xx qpower(xx a,long long k,int len)
{
xx b;
memset(b.m,,sizeof(b.m));
for(int i = ;i <= len;i++) b.m[i][i] = ;
while(k)
{
if(k%) b = mul(a,b,len);
a = mul(a,a,len);
k /= ;
}
return b;
}
int main()
{
ios::sync_with_stdio();
cin >> n >> k;
xx base,now;
for(int i = ;i < ;i++)
{
for(int j = max(,i-);j < min(i+,);j++) base.m[i][j] = ;
}
now.m[][] = ;
for(int i = ;i <= n;i++)
{
long long a,b,c;
cin >> a >> b >> c;
for(int j = c+;j < ;j++) now.m[j][] = ;
now = mul(qpower(base,min(b,k)-a,c),now,c);
for(int j = c+;j < ;j++) now.m[j][] = ;
if(b >= k) break;
}
cout << now.m[][] << endl;
return ;
}
Codeforces_821的更多相关文章
随机推荐
- 小小知识点(二十四)什么是5G
转自 https://www.ifanr.com/1149419 一个简单且神奇的公式 今天的故事,从一个公式开始讲起.这是一个既简单又神奇的公式.说它简单,是因为它一共只有 3 个字母.而说它神奇, ...
- JVM之GC(三)
前面介绍了GC和几种主流的GC算法,这节准备说一下垃圾收集器.垃圾收集器可以分为三类,Yong GC, Old GC, Mixed GC Yong GC 1.Serial 单线程处理,采用复制算法,通 ...
- 【python小随笔】将一个列表的值,分成10个一组,遍历的时候每10个遍历一次
t = ['B071LF9R6G', 'B0714BP3H4', 'B0756FL8R7', 'B072HX95ZR', 'B07CX389LX', 'B07D9MZ7BD', 'B07D9L15L5 ...
- 为QLabel增加Clicked信号
QT为QLabel添加Click事件(如果我们使用组件,我们关心的是信号槽:如果我们自定义组件,我们关心的是事件) 其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标 ...
- Spark集群-Standalone 模式
Spark 集群相关 table td{ width: 15% } 来源于官方, 可以理解为是官方译文, 外加一点自己的理解. 版本是2.4.4 本篇文章涉及到: 集群概述 master, worke ...
- SparkStreaming-Kafka集成
SparkStreaming-Kafka集成 参考链接: Spark Streaming + Kafka Integration Guide 文章基本是官方的翻译, 最多再加入了一小部分自己的思考在内 ...
- python命名空间(namespace)
命名空间: 每一个作用域变量存储的位置,或者解释为 存储作用域中变量的字典. 作用: 获取想查看某个作用域中的变量名.变量值. 使用方法: locals() #当前命名空间 1. 效果图: 2. 代 ...
- 搭建自己的Online Judge
前言 很多人对于做题有点厌烦,但是,如果让你出题给别人做那么可能会很有意思.可是,出题只能出在一些别人的OJ上,甚至只能在自己的Word文档里出.今天我教大家一个厉害点的,叫做搭建自己的Online ...
- 枚举 xor
题意:输入整数n(1<=n<=3千万),有多少对整数(a,b)满足:1<=b<=a<=n,且gcd(a,b)=a XOR b.例如:n=7时,有4对:(3,2),(5,4 ...
- Nginx. 用http访问https跨域
用http 访问 https域名, 报跨越问题 解决方法: 在nginx相应服务的转发配置下添加: add_header 'Access-Control-Allow-Origin' 'http://i ...