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的更多相关文章
随机推荐
- C Primer Plus(二)
重读C Primer Plus ,查漏补缺 重读C Primer Plus,记录遗漏的.未掌握的.不清楚的知识点 分支和跳转 1.ctype.h头文件里包含了一些列用于字符判断的函数,包括判断数字.大 ...
- Date、Time类型拼接成字符串
Date.Time类型拼接成字符串 语言用的是kotlin,和Java类似 var time = "" val sdf1 = SimpleDateFormat("yyyy ...
- css常用单词
<!-- type = circle表示空心圆 --> <!-- type = disc 表示实心圆 --> <!-- type = square表示方块 ...
- 【Think In Java笔记】第1章 对象导论
1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...
- 【转】[IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
感谢IT面试群 S-北京-陈磊 的整理分享. 基础篇:操作系统.计算机网络.设计模式 提高篇:WIN32.MFC与Linux 算法篇:算法与数据结构 一:操作系 ...
- 小程序的<label>标签
用来改进表单组件的可用性. 使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件. for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件. 目前可以绑定的控件 ...
- 【WPF学习】第十章 WPF布局示例
前几章用了相当大的篇幅研究有关WPF布局容器的复杂内容.在掌握了这些基础知识后,就可以研究几个完整的布局示例.通过研究完整的布局示例,可更好的理解各种WPF布局概念在实际窗口中的工作方式. 一.列设置 ...
- 【Oracle】内连接、外连接、(+)的使用
表各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 40C 连接分为两种:内连接与外连接. A.内连接 内连接,即最常见 ...
- SpringBoot中对SpringMVC的自动配置
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developin ...
- window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台
一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...