博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贪心 Codeforces Round #288 (Div. 2) B. Anton and currency you all know
阅读量:6241 次
发布时间:2019-06-22

本文共 2402 字,大约阅读时间需要 8 分钟。

 

1 /*  2     题意:从前面找一个数字和末尾数字调换使得变成偶数且为最大  3     贪心:考虑两种情况:1. 有偶数且比末尾数字大(flag标记);2. 有偶数但都比末尾数字小(x位置标记)  4     仿照别人写的,再看自己的代码发现有清晰的思维是多重要  5 */  6 #include 
7 #include
8 #include
9 #include
10 #include
11 #include
12 using namespace std; 13 14 const int MAXN = 1e5 + 10; 15 const int INF = 0x3f3f3f3f; 16 char s[MAXN]; 17 18 int main(void) //Codeforces Round #288 (Div. 2) B. Anton and currency you all know 19 { 20 #ifndef ONLINE_JUDGE 21 freopen ("B.in", "r", stdin); 22 #endif 23 24 scanf ("%s", &s); 25 26 int len = strlen (s); 27 bool flag = false; 28 int x = -1; 29 for (int i=0; i

 

1 if (len == 1) 2     { 3         puts ("-1"); 4     } 5     else if (len == 2) 6     { 7         if ((s[0] - '0') % 2 != 0)    puts ("-1"); 8         else 9         {10             printf ("%c%c\n", s[1], s[2]);11         }12     }13     else if (len == 3)14     {15         if ((s[1] - '0') % 2 == 0)16         {17             if ((s[0] - '0') % 2 == 0)18             {19                 if (s[0] > s[1])    swap (s[0], s[2]);20                 else    swap (s[1], s[2]);21                 printf ("%s\n", s);22             }23             else24             {25                 swap (s[1], s[2]);26                 printf ("%s\n", s);27             }28         }29         else if ((s[0] - '0') % 2 == 0)30         {31             swap (s[0], s[2]);32             printf ("%s\n", s);33         }34         else    puts ("-1");35     }36     else37     {38         char ch = '0';    int x = -1;39         for (int i=len-2; i>=0; --i)40         {41             if ((s[i]-'0') % 2 == 0)42             {43                 if (ch <= s[i])44                 {45                     if (ch == s[i])46                     {47                         if (s[i] < s[len-1])48                         {49                             ch = s[i];     x = i;50                         }51                     }52                     else53                     {54                         ch = s[i];     x = i;55                     }56                 }57             }58         }59         if (x == -1)    puts ("-1");60         else61         {62             swap (s[x], s[len-1]);63             printf ("%s\n", s);64         }65     }
思维混乱的代码

 

转载于:https://www.cnblogs.com/Running-Time/p/4366607.html

你可能感兴趣的文章
将markdown格式转化为bootstrap风格html
查看>>
CSS3 Transitions属性打造动画的下载按钮特效
查看>>
eclipse 快捷键
查看>>
js常用的事件对象
查看>>
SharePoint 2013 禁用搜索服务
查看>>
[原]一个针对LVS的压力测试报告
查看>>
拥塞控制和流量控制
查看>>
[LeetCode] Sum Root to Leaf Numbers
查看>>
IO设计模式:Reactor和Proactor对比
查看>>
Qt Widgets——动作类与小部件菜单项
查看>>
ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
查看>>
[转]动态规划解最长公共子序列问题
查看>>
WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore...
查看>>
ORA-00600: 内部错误代码, 参数: [kqlnrc_1]
查看>>
Android Studio常用小技巧
查看>>
和为S的两个数字
查看>>
NPOI导出模板样式
查看>>
jsp请求由servlet响应的方式
查看>>
16 款最流行的 JavaScript 框架
查看>>
使用awrextr.sql导出awr原始数据
查看>>