0915 反思
时间:2019-09-16
本文章向大家介绍0915 反思,主要包括0915 反思使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这场比赛还是打的很迷
A题我居然没看出来是状态压缩
B题本来是一道DP题 我脑抽 写了一发最短路..... 然后空间就超了
C题打暴力只有30分 没有想到换根操作
A
N<=16!!!
zz 一味地打表 然后居然认为这是一个求逆序对的题目...
首先一看范围 状态压缩 这很显然
\(F[I]\)表示把集合i 里面的元素合并的最小步数
考虑转移
注意到 当集合为回文串的时候 只需要多操作一步
所以 \(F[I]=MIN(F[I\)^\(S]+1,F[I])\)
预处理回文串
CODE:
//
#include<bits/stdc++.h>
using namespace std;
#define maxnn 100000
int mark[1<<21];
int all,n;
int f[1<<21];
char s[maxnn];
int main() {
scanf("%s",s+1);
n=strlen(s+1);
int all=(1<<n)-1;
for(int i=0; i<=all; i++) {
int l=0,r=0;
for(int k=1; k<=n; k++) {
if((1<<k-1)&i) {
l=k;
break;
}
}
for(int k=n; k>=1; k--) {
if((1<<k-1)&i) {
r=k;
break;
}
}
if(s[l]!=s[r]) {
mark[i]=0;
continue;
}
if((l==0)||(r==0)) continue;
while(l<=r) {
while((!(i&(1<<l-1)))) l++;
while((!(i&(1<<r-1)))) r--;
if(s[l]!=s[r]) {
mark[i]=0;
f[i]=0;
break;
}
l++,r--;
f[i]=1;
mark[i]=1;
}
}
for(int i=0; i<=all; i++) {
for(int k=i; k; k=(k-1)&i) {
if(mark[k]==1) {
if(f[i]==0)
f[i]=f[i^k]+1;
else
{
f[i]=min(f[i],f[i^k]+1);
}
}
}
}
cout<<f[all];
}
原文地址:https://www.cnblogs.com/OIEREDSION/p/11528597.html
- 最新机器学习必备十大入门算法!都在这里了
- ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
- 深度学习笔记:深度学习在计算机视觉的应用
- 快速添加永久存储到到Minishift / CDK 3
- 张小龙发布2018微信全新计划(内附演讲全文)
- 使用JClouds在Java中获取和发布云服务器
- 利用ASP.NET SiteMap生成与Bootstrap"兼容"菜单
- 埃隆·马斯克强烈推荐的5本书,看完之后他开始改变世界
- 算法:AOE网(Activity On edge Network)与关键路径简介
- ASP.NET Core的配置(4):多样性的配置来源[中篇]
- ASP.NET MVC的Razor引擎:RazorViewEngine
- 算法:求解AOE网的关键路径
- 编程小技巧:多态原理
- ASP.NET Core的配置(4):多样性的配置来源[下篇]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Scrapy框架: 通用爬虫之CrawlSpider
- Scrapy框架: 通用爬虫之XMLFeedSpider
- Scrapy框架: 通用爬虫之CSVFeedSpider
- Scrapy框架: 通用爬虫之SitemapSpider
- Scrapy框架: 异常错误处理
- Scrapy框架: Request回调函数
- Python快速设置Excel表格边框
- SwiftUI:contextMenu 菜单
- [已解决]报错: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/User
- Python建立pip.ini
- 使用requests_html抓取数据
- AkShare-能源数据-碳排放-深圳
- ClickHouse入门实例-样例数据(ontime)
- Docker的简单使用
- AkShare-中国宏观-外汇和黄金