当前位置: 首页 > news >正文

新疆生产建设兵团教育局网站无锡网站制作无锡做网站

新疆生产建设兵团教育局网站,无锡网站制作无锡做网站,wordpress 防注入广告,网站会员注册系统怎么做视频好久不写博客了,今天来水一篇 原题链接 初看此题在洛谷上的定位是黄题,实际上也并不是很简单。 其实主要就用到了贪心的思想,先说一下我在做题的时候是怎么想的吧。 先看了部分分,10分是很好拿的,再就分析题意&…

好久不写博客了,今天来水一篇

原题链接

初看此题在洛谷上的定位是黄题,实际上也并不是很简单。

其实主要就用到了贪心的思想,先说一下我在做题的时候是怎么想的吧。

先看了部分分,10分是很好拿的,再就分析题意,打暴力能拿60分(已经还可以了),60分主要用到了桶排序的思想,桶排序是只会看是否存在,不会重复记

60pts:(缺少了判断i!=j的情况)

#include<bits/stdc++.h>
using namespace std;
int read() {int x = 0, f = 1;char ch = getchar();while (ch < '0' || ch > '9') {if (ch == '-') f = -1;ch = getchar();}while (ch <= '9' && ch >= '0') {x = x * 10 + ch - '0';ch = getchar();}return x * f;
}
const int N = 3010;
string s[N];
int cnt[26];
int n, m;
int main() {n = read(), m = read();string mins = "";for (int i = 0; i < 3000; i++) {mins += "z";}for (int i = 1; i <= n; i++) {cin >> s[i];if (mins > s[i]) {mins = s[i];}}for (int i = 1; i <= n; i++) {int len = s[i].length();for (int j = 0; j < len; j++) {cnt[s[i][j] - 'a']++;}string t = "";for (int j = 0; j < 26; j++) { //桶排序while (cnt[j]) {t += j + 'a';cnt[j]--;}}if (t <= mins) {cout << 1;} else cout << 0;}return 0;
}

接下来就是正解:直接把每个字符串wi都从小到大或者从大到小排一下,记作ai,bi。如果bi小于除了i之外的所有ai,说明可以,否则不可以。求一个前后缀最大值即可。复杂度为O(26n+nm)

100pts:

#include<bits/stdc++.h>
using namespace std;
inline int read() {int x = 0, f = 1;char ch = getchar();while (ch < '0' || ch > '9') {if (ch == '-')f = -1;ch = getchar();}while (ch >= '0' && ch <= '9')x = x * 10 + ch - '0', ch = getchar();return x * f;
}
const int N=3005;
char s[N];
char mx[N][N], mn[N][N];
char  pr[N][N], sf[N][N];
int c[35];
int  main() {int n = read(), m = read();for (int i = 1; i <= n; i++) {scanf("%s", s);int pmx = 0, pmn = 0;for (int j = 0; j < m; j++)c[s[j] - 'a']++;for (int j = 25; j >= 0; j--) {while (c[j])mx[i][pmx++] = j + 'a', c[j]--;}for (int j = 0; j < m; j++)c[s[j] - 'a']++;for (int j = 0; j <= 25; j++) {while (c[j])mn[i][pmn++] = j + 'a', c[j]--;}}for (int j = 0; j < m; j++)pr[1][j] = mx[1][j];for (int i = 2; i <= n; i++) {int flag = 0;for (int j = 0; j < m; j++) {if (pr[i - 1][j] < mx[i][j]) {flag = 0;break;} else if (pr[i - 1][j] > mx[i][j]) {flag = 1;break;}}if (!flag) {for (int j = 0; j < m; j++)pr[i][j] = pr[i - 1][j];} else {for (int j = 0; j < m; j++)pr[i][j] = mx[i][j];}}for (int j = 0; j < m; j++)sf[n][j] = mx[n][j];for (int i = n - 1; i >= 1; i--) {int flag = 0;for (int j = 0; j < m; j++) {if (sf[i + 1][j] < mx[i][j]) {flag = 0;break;} else if (sf[i + 1][j] > mx[i][j]) {flag = 1;break;}}if (!flag) {for (int j = 0; j < m; j++)sf[i][j] = sf[i + 1][j];} else {for (int j = 0; j < m; j++)sf[i][j] = mx[i][j];}}for (int i = 1; i <= n; i++) {int flag = 1;if (i > 1) {int tag = 0;for (int j = 0; j < m; j++) {if (mn[i][j] > pr[i - 1][j]) {tag = 0;break;} else if (mn[i][j] < pr[i - 1][j]) {tag = 1;break;}}flag &= tag;}if (i < n) {int tag = 0;for (int j = 0; j < m; j++) {if (mn[i][j] > sf[i + 1][j]) {tag = 0;break;} else if (mn[i][j] < sf[i + 1][j]) {tag = 1;break;}}flag &= tag;}if (flag)cout<<1;else cout<<0;}return 0;
}

http://www.shuangfujiaoyu.com/news/42610.html

相关文章:

  • 广西柳州网站建设站长工具综合查询ip
  • 佛山大良网站建设招聘谷歌关键词排名查询工具
  • 杭州网站建设q479185700棒手机优化游戏性能的软件
  • 做简单网站需要学什么自己怎么免费做网站网页
  • 七冶建设集团网站 江苏谷歌排名规则
  • 合肥网站开发公司电话免费新闻源发布平台
  • wordpress图片无损压缩奶盘seo伪原创工具
  • 温州网站建设推广好看的友情链接代码
  • 成都创意设计公司苏州排名搜索优化
  • 长春网站建设加王道下拉谷歌广告怎么投放
  • 大同格泰网站建设商业推广
  • 做家居网站设计网络营销策略理论有哪些
  • 网站推广网络青岛网站制作
  • 常德网站建设哪家快抖音企业推广
  • 网站建设推介会发言稿朝阳seo
  • 网站空间要多大如何建立自己的网站
  • 宝安中心地铁站时间表怎么样建网站
  • 桂林网站建设 腾云关键词分析工具网站
  • 网站备案流程多少钱品牌互动营销案例
  • 万州建设工程信息官网seo的优化策略有哪些
  • 做网站服务销售湖南seo推广多少钱
  • 代理彩票网站做链接郑州搜索引擎优化公司
  • 馆陶网站建设公司seo培训网
  • bbs网站设计模板seo推广代理
  • 长春专业做网站全网营销一站式推广
  • 建设公司自己的网站贵州seo培训
  • 毕业设计用PHP做旅游网站汕头网站设计
  • 建设小说网站的系统有哪些营销策划方案案例范文
  • 泰安网站建设工作室百度指数在线查询工具
  • 做电商网站用什么技术淘宝优化标题都是用什么软件