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的更多相关文章
随机推荐
- 1026 程序运行时间 (15 分)C语言
题目描述 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间.这个时间单位是clock tic ...
- Could not write JSON: Infinite recursion (StackOverflowError);
转自:https://blog.csdn.net/east123321/article/details/80435051 在controller返回数据到统一json转换的时候,出现了json inf ...
- 【转】7本免费的Java电子书和教程
本文由 ImportNew - 唐小娟 翻译自 Javapapers.如需转载本文,请先参见文章末尾处的转载要求. 1. Thinking in Java (Third Edition) 本书的作者是 ...
- js删除数组的某个元素
最近在刷算法题,我是用js语言去写的,其中一题需要删除数组的某个元素,查了一下资料,总结一下 使用splice()方法 array.splice(start[, deleteCount[, item1 ...
- .NET使用FastDBF写入DBF
FastDBF源代码地址:https://github.com/SocialExplorer/FastDBF 第一步在解决方案中新建一个类库的项目:取名为SocialExplorer.FastDBF ...
- html5中的Web Storage
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage.sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有 ...
- 19南京网络赛A 扫描线
题目链接:https://nanti.jisuanke.com/t/41298 扫描线的简单题,题目难在找宫殿的价值(°ー°"),比赛时将近100多行代码找价值,纯模拟,看到题解哭了. 存下 ...
- 安装numpy、matplotlib
一.安装numpy 1.下载 https://pypi.org/project/numpy/#files 2.安装 pip3 install numpy-1.17.3-cp37-cp37m-win_a ...
- Django admin的简单使用
1.汉化网站 位置:setting.py LANGUAGE_CODE = 'zh-hans' 2.注册站点(添加表) 位置:admin.py from app01 import models admi ...
- 异常java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava/lang/Class;Ljava/lang/Class;)[Ljava/lang/Class;
java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava ...