A. Reachable Numbers
题意:设f(x)为 x+1 这个数去掉后缀0的数,现在给出n,问经过无数次这种变换后,最多能得到多少个不同的数。
代码
#include #include #include #include #include #include #include #include
B. Long Number
题意:给一个长度为n的字符串,给出 f 数组表示你可以把字符 x 变成对应的 f (x),你只能修改一段连续的子串,求修改后字典序最大的字符串。
#include #include #include #include #include #include #include #include
C1. Increasing Subsequence (easy version)
题意:给一个长度为 n 的数组,每个数不一样,每次你可以从坐边界或者右边界取一个数,要求每一次取的数都要比上一次取得数要大,求最多可以取多少个数。
代码:
#include #include #include #include #include #include #include #include
::iterator it1=vec.begin(),it2=vec.end()-1; vector
v; int xx=0; for(int t=0;t xx||*it1>xx) { if(*it2<*it1&&*it2>xx&&*it1>xx) { xx=*it2; v.push_back('R'); it2--; } else if(*it1<*it2&&*it2>xx&&*it1>xx) { xx=*it1; v.push_back('L'); it1++; } else if(*it2>xx) { xx=*it2; v.push_back('R'); it2--; } else if(*it1>xx) { xx=*it1; v.push_back('L'); it1++; } // cout< < ::iterator it=v.begin(); for(it=v.begin();it!=v.end();it++) { cout<<*it; } return 0;}