cCodeforces Round #286 (Div. 2)
A题。。暴力枚举在每个位置添加字符,然后检查一下是不是回文串
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 #include <vector> 7 8 using namespace std; 9 10 #define LL long long 11 #define eps 1e-8 12 #define inf 0x3f3f3f3f 13 #define lson l, m, rt << 1 14 #define rson m+1, r, rt << 1 | 1 15 #define mnx 31000 16 17 char s[20], ch[20]; 18 bool check(){ 19 int n = strlen( ch ); 20 for( int i = 0, j = n-1; i <= j; ++i, --j ){ 21 if( ch[i] != ch[j] ) return false; 22 } 23 return true; 24 } 25 int main(){ 26 scanf( "%s", &s ); 27 int n = strlen( s ); 28 for( int i = 0; i <= n; ++i ){ 29 for( int j = 'a'; j <= 'z'; ++j ){ 30 for( int k = 0, m = 0; k <= n; ++k ){ 31 if( i == k ) 32 ch[k] = (char)j; 33 else 34 ch[k] = s[m++]; 35 } 36 ch[n+1] = '\0'; 37 if( check() ){ 38 printf( "%s\n", ch ); 39 return 0; 40 } 41 } 42 } 43 puts( "NA" ); 44 return 0; 45 }
View Code
B题。。也是暴力枚举每种颜色,dfs算一下就好
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 #include <vector> 7 8 using namespace std; 9 10 #define LL long long 11 #define eps 1e-8 12 #define inf 0x3f3f3f3f 13 #define lson l, m, rt << 1 14 #define rson m+1, r, rt << 1 | 1 15 #define mnx 500 16 17 int fst[mnx], nxt[mnx], vv[mnx], col[mnx], e, ans; 18 void add( int u, int v, int c ){ 19 vv[e] = v, col[e] = c, nxt[e] = fst[u], fst[u] = e++; 20 } 21 bool vis[mnx], ok; 22 void dfs( int u, int gg, int vol ){ 23 if( u == gg ){ 24 ans++; ok = 1; return ; 25 } 26 if( vis[u] ) return ; 27 vis[u] = 1; 28 for( int i = fst[u]; i != -1; i = nxt[i] ){ 29 if( ok ) return ; 30 int v = vv[i], c = col[i]; 31 if( c != vol ) continue; 32 dfs( v, gg, vol ); 33 } 34 } 35 int main(){ 36 int n, m, q; 37 scanf( "%d %d", &n, &m ); 38 memset( fst, -1, sizeof( fst ) ); 39 for( int i = 0; i < m; ++i ){ 40 int u, v, c; 41 scanf( "%d %d %d", &u, &v, &c ); 42 add( u, v, c ); 43 add( v, u, c ); 44 } 45 scanf( "%d", &q ); 46 while( q-- ){ 47 int u, v; 48 scanf( "%d%d", &u, &v ); 49 ans = 0; 50 for( int i = 1; i <= m; ++i ){ 51 memset( vis, 0, sizeof( vis ) ); 52 ok = 0; 53 dfs( u, v, i ); 54 } 55 cout << ans << endl; 56 } 57 return 0; 58 }
View Code
C题。。比赛的时候想不出来,看了题解才知道 第二维的状态最多不超过500。。因为你1+2+...+250 > 3w,这样每次步数减一或者加一的总的状态不会超过500,所以dp[30000][600]就够了, 把第二维300当做第一次的步数d,然后每次有可能走 d+j-n - 1, d+j-n, d+j-n+1步,感觉看代码容易理解一些。。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 #include <vector> 7 8 using namespace std; 9 10 #define LL long long 11 #define eps 1e-8 12 #define inf 0x3f3f3f3f 13 #define lson l, m, rt << 1 14 #define rson m+1, r, rt << 1 | 1 15 #define mnx 31000 16 17 const int N = 300; 18 int dp[mnx][700], val[mnx]; 19 int main(){ 20 int n, m; 21 while( scanf( "%d%d", &n, &m ) != EOF ){ 22 memset( val, 0, sizeof val ); 23 memset( dp, 0, sizeof dp ); 24 for( int i = 0; i < n; ++i ){ 25 int x; 26 scanf( "%d", &x ); 27 val[x]++; 28 } 29 dp[m][N] = val[m] + val[0] + 1; 30 int ans = 0; 31 for( int i = m; i < mnx; ++i ){ 32 for( int j = 0; j < 600; ++j ){ 33 if( !dp[i][j] ) continue; 34 int l = m + j - N; 35 ans = max( dp[i][j] - 1, ans ); 36 if( i + l >= mnx ) continue; 37 if( l > 0 ) 38 dp[i+l][j] = max( dp[i+l][j], dp[i][j] + val[i+l] ); 39 if( l > 1 ) 40 dp[i+l-1][j-1] = max( dp[i+l-1][j-1], dp[i][j] + val[i+l-1] ); 41 if( l >= 0 ) 42 dp[i+l+1][j+1] = max( dp[i+l+1][j+1], dp[i][j] + val[i+l+1] ); 43 } 44 } 45 cout << ans << endl; 46 } 47 return 0; 48 }
View Code
D题。。好像是B的加强版,用并查集搞。。明天再看看
转载于:https://www.cnblogs.com/LJ-blog/p/4254735.html
cCodeforces Round #286 (Div. 2)相关推荐
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces 504 A (Round #285 div.1 A) Misha and Forest
Codeforces Round #285 (Div.1) A Misha and Forest 水题水题水-- 题意:给你一些点,给出他们连通了多少个点以及这些点的下标的异或值,让你找出一个图 题解 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...
最新文章
- node.js获取本机Ip, hostName, mac
- 外部引用CSS中 link与@import的区别
- 计算机应用等级考试1,计算机等级考试一级试题
- zookeeper和etcd有状态服务部署
- java对象转json格式
- sed修炼系列(三):sed高级应用之实现窗口滑动技术
- 德国Vue.js2终极开发教程024--32
- flex布局 占满_果冻公开课第九课:打破传统布局方式的flex(上)
- 苹果ios、ipad加密视频播放器使用教程
- python爬虫学习教程,短短25行代码批量下载豆瓣妹子图片
- 判断运行环境是手机还是 PC
- SMBJ6.5A瞬变抑制二极管
- 嵌入式开发学习路线图
- 图像分类halcon
- 黑窗口方式,使用命令行导入导出Oracle
- OBB包围盒及其碰撞检测算法(一)
- STC 纯硬件自动下载电路 - 三极管负脉冲电路
- 月入过万的steam搬砖项目教程拆解,看这一篇就够了
- 计算机数据传输9600波特率,波特率9600每秒的传输字节 传输一个字节要多久-与非网...
- 【数据结构面试常见问题】
热门文章
- C#中如何得到机器的IP地址
- Linux 汇编语言开发指南
- Redis源码解析——字典结构
- 使用C++实现一套简单的状态机模型——原理解析
- PE文件和COFF文件格式分析——RVA和RA相互计算
- 【数据库】sqlite3数据库备份、导出方法汇总
- 【ubuntu工具】Atom的简介及安装
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
- matlab 弹出提示,谁能告诉我为什么一打开matlab2014b就弹出一个框就自动退出
- 电脑画画软件_手绘、板绘、还有用pad画画都有啥区别?