青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

微軟2014實習生及秋令營技術類職位在線測試


1.String reorder

Time Limit: 10000ms
Case Time Limit: 1000ms
Memory Limit: 256MB

 

Description

For this question, your program is required to process an input string containing only ASCII characters between ‘0’ and ‘9’, or between ‘a’ and ‘z’ (including ‘0’, ‘9’, ‘a’, ‘z’).

Your program should reorder and split all input string characters into multiple segments, and output all segments as one concatenated string. The following requirements should also be met,
1. Characters in each segment should be in strictly increasing order. For ordering, ‘9’ is larger than ‘0’, ‘a’ is larger than ‘9’, and ‘z’ is larger than ‘a’ (basically following ASCII character order).
2. Characters in the second segment must be the same as or a subset of the first segment; and every following segment must be the same as or a subset of its previous segment.

Your program should output string “<invalid input string>” when the input contains any invalid characters (i.e., outside the '0'-'9' and 'a'-'z' range).

 

Input

Input consists of multiple cases, one case per line. Each case is one string consisting of ASCII characters.

 

Output

For each case, print exactly one line with the reordered string based on the criteria above.

 

Sample In

aabbccdd
007799aabbccddeeff113355zz
1234.89898
abcdefabcdefabcdefaaaaaaaaaaaaaabbbbbbbddddddee


Sample Out

abcdabcd
013579abcdefz013579abcdefz
<invalid input string>
abcdefabcdefabcdefabdeabdeabdabdabdabdabaaaaaaa


代碼:
 1#include <cstdio>
 2#include <cstring>
 3
 4using namespace std;
 5
 6typedef  long long  Lint;
 7
 8#define  L  256
 9Lint cnt[ L ];
10Lint tot;
11
12#define  INVALID  "<invalid input string>"
13
14int main() {
15        int ch = 1;
16        int i;
17        int invalid;
18        while ( EOF != ch ) {
19                memset( cnt, 0sizeof(cnt) );
20                for ( ch = getchar(); (EOF != ch) && ('\n' != ch); ch = getchar() ) {
21                        ++cnt[ ch ];
22                        ++tot;
23                }

24                invalid = 0;
25                for ( i = 0; i < L; ++i ) {
26                        if (    (0 < cnt[ i ]) && 
27                                (!      (       ( ('0' <= i) && ('9' >= i)
28                                                ) || 
29                                                ( ('a' <= i) && ('z' >= i)
30                                                )
31                                        )
32                                )
33                        ) {
34                                invalid = 1;
35                                break;
36                        }

37                }

38                if ( invalid ) {
39                        puts( INVALID );
40                        continue;
41                }

42
43                while ( 0 < tot ) {
44                        for ( i = 0; i < L; ++i ) {
45                                if ( 0 < cnt[ i ] ) {
46                                        putchar( i );
47                                        --cnt[ i ];
48                                        --tot;
49                                }

50                        }

51                }

52                puts( "" );
53        }

54        return 0;
55}

56




2.K-th string

Time Limit: 10000ms
Case Time Limit: 1000ms
Memory Limit: 256MB

 

Description

Consider a string set that each of them consists of {0, 1} only. All strings in the set have the same number of 0s and 1s. Write a program to find and output the K-th string according to the dictionary order. If s​uch a string doesn’t exist, or the input is not valid, please output “Impossible”. For example, if we have two ‘0’s and two ‘1’s, we will have a set with 6 different strings, {0011, 0101, 0110, 1001, 1010, 1100}, and the 4th string is 1001.


Input

The first line of the input file contains a single integer t (1 ≤ t ≤ 10000), the number of test cases, followed by the input data for each test case.
Each test case is 3 integers separated by blank space: N, M(2 <= N + M <= 33 and N , M >= 0), K(1 <= K <= 1000000000). N stands for the number of ‘0’s, M stands for the number of ‘1’s, and K stands for the K-th of string in the set that needs to be printed as output.


Output

For each case, print exactly one line. If the string exists, please print it, otherwise print “Impossible”.


Sample In

3
2 2 2
2 2 7
4 7 47

Sample Out

0101
Impossible
01010111011


代碼:
 1#include <cstdio>
 2#include <cstring>
 3
 4using namespace std;
 5
 6#define  IMP  "Impossible"
 7
 8typedef  long long  Lint;
 9
10#define  L  35
11
12Lint c[ L ][ L ];
13char ans[ L+L ];
14
15void init() {
16        int i, j;
17        memset( c, 0sizeof(c) );
18        c[ 0 ][ 0 ] = 1;
19        for ( i = 1; i < L; ++i ) {
20                c[ i ][ 0 ] = c[ i ][ i ] = 1;
21                for ( j = 1; j < i; ++j ) {
22                        c[ i ][ j ] = c[ i-1 ][ j-1 ] + c[ i-1 ][ j ];
23                }

24        }

25}

26
27static int solve_i( int n0, int n1, int idx, int off ) {
28        if ( (0 == n0) && (0 == n1) && (0 == idx) ) {
29                return 1;
30        }

31
32        if ( ((1 > n0) || (1 > n1)) && (1 != idx) ) {
33                return 0;
34        }

35
36        if ( 1 == idx ) {
37                for ( int i = 0; i < n0; ++i ) {
38                        ans[ off + i ] = '0';
39                }

40                for ( int i = 0; i < n1; ++i ) {
41                        ans[ off + n0 + i ] = '1';
42                }

43                return 1;
44        }

45
46        int i = 0;
47        while ( c[n1+i-1][i] < idx ) {
48                idx -= c[n1+i-1][i];
49                ++i;
50        }

51        for ( int j = 0; j < n0 - i; ++j ) {
52                ans[ off + j ] = '0';
53        }

54        ans[ off + n0 - i ] = '1';
55        return solve_i( i, n1-1, idx, off + n0 - i + 1 );
56}

57
58/*
59n0=n=4, n1=m=7, idx=k=47
60
61i   n0      n1
62
630   0000    1??????     c[6][0] = 1
641   0001    ???????     c[7][1] = 7
652   001?    ???????     c[8][2] = 28
663   01??    ???????     c[9][3] = 84
674   1???    ???????     c[10][4]
68
69*/

70
71int solve( int n, int m, int k ) {
72        if ( c[n+m][n] < k ) {
73                return 0;
74        }

75        memset( ans, 0sizeof(ans) );
76        return solve_i( n, m, k, 0 );
77}

78
79int main() {
80        int tot_case;
81        int n, m, k;
82
83        init();
84
85        scanf( "%d"&tot_case );
86        while ( 0 < tot_case-- ) {
87                scanf( "%d%d%d"&n, &m, &k );
88
89                if ( solve( n, m, k ) ) {
90                        puts( ans );
91                }

92                else {
93                        puts( IMP );
94                }

95        }

96
97        return 0;
98}

99




3.Reduce inversion count

Time Limit: 10000ms
Case Time Limit: 1000ms
Memory Limit: 256MB

Description

Find a pair in an integer array that swapping them would maximally decrease the inversion count of the array. If such a pair exists, return the new inversion count; otherwise returns the original inversion count.

Definition of Inversion: Let (A[0], A[1] ... A[n]) be a sequence of n numbers. If i < j and A[i] > A[j], then the pair (i, j) is called inversion of A.

Example:
Count(Inversion({3, 1, 2})) = Count({3, 1}, {3, 2}) = 2
InversionCountOfSwap({3, 1, 2})=>
{
  InversionCount({1, 3, 2}) = 1 <-- swapping 1 with 3, decreases inversion count by 1
  InversionCount({2, 1, 3}) = 1 <-- swapping 2 with 3, decreases inversion count by 1
  InversionCount({3, 2, 1}) = 3 <-- swapping 1 with 2 , increases inversion count by 1
}


Input

Input consists of multiple cases, one case per line.Each case consists of a sequence of integers separated by comma.

Output

For each case, print exactly one line with the new inversion count or the original inversion count if it cannot be reduced.


Sample In

3,1,2
1,2,3,4,5

Sample Out

1
0


解法:
窮舉兩元素交換,使用修改的歸并排序求逆序對數,時間復雜度O(n*n*n*logn)。



4.Most Frequent Logs
不會。










posted on 2014-04-13 19:11 coreBugZJ 閱讀(3757) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithm

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产麻豆精品视频| 校园春色国产精品| 欧美一区二区在线观看| 日韩视频免费在线观看| 久久久久久久久久久一区 | 国产一区二区精品久久99| 亚洲精品资源美女情侣酒店| 在线日韩中文字幕| 久久国产一区| 久久国产夜色精品鲁鲁99| 欧美日韩在线免费| 亚洲日本电影| 亚洲精品少妇网址| 看片网站欧美日韩| 麻豆国产精品va在线观看不卡| 国产精品免费看| 亚洲一区二区av电影| 亚洲影院色无极综合| 欧美日韩中文字幕在线视频| 亚洲精品一区二区三区婷婷月| 亚洲韩国青草视频| 美女性感视频久久久| 欧美99在线视频观看| 在线国产日韩| 久久阴道视频| 亚洲国产日韩欧美一区二区三区| 亚洲国产成人在线| 欧美v亚洲v综合ⅴ国产v| 亚洲高清不卡av| 99ri日韩精品视频| 欧美日韩大陆在线| 一本大道久久a久久综合婷婷 | 一区二区三区视频在线看| 国产精品99久久久久久久vr| 欧美精品成人| 日韩五码在线| 欧美亚洲一区三区| 国外成人在线视频网站| 久久天堂国产精品| 亚洲人成网站精品片在线观看| 在线视频欧美一区| 国产欧美视频一区二区| 久久久久久999| 亚洲国产欧美一区二区三区同亚洲 | 亚洲国产欧美一区| 中文亚洲免费| 国产精品网站在线| 久久久久久久久久码影片| 亚洲国产日韩在线| 亚洲专区一区| 激情综合色丁香一区二区| 暖暖成人免费视频| 一本久久知道综合久久| 久久久久久久综合| 亚洲美女免费视频| 国产色综合久久| 男人插女人欧美| 亚洲一区在线观看视频| 免费在线成人av| 亚洲一区日韩在线| 在线看成人片| 国产精品成人一区二区艾草| 久久久久成人精品| 日韩午夜在线观看视频| 久久午夜电影网| 亚洲午夜久久久| 亚洲国产成人av好男人在线观看| 欧美天天在线| 欧美~级网站不卡| 性亚洲最疯狂xxxx高清| 亚洲激情成人在线| 久久久久久夜精品精品免费| av72成人在线| 亚洲高清视频一区| 国产精品一区二区在线| 欧美精品18| 久久精品国产一区二区电影| 亚洲视频网站在线观看| 亚洲福利视频一区二区| 久久亚洲一区| 欧美亚洲视频在线看网址| 99国产精品久久久| **性色生活片久久毛片| 国产日韩欧美| 国产精品白丝黑袜喷水久久久| 欧美+亚洲+精品+三区| 久久久久久国产精品一区| 亚洲一区中文字幕在线观看| 亚洲毛片av| 亚洲经典三级| 欧美激情第10页| 另类av一区二区| 久久精品主播| 久久国产福利国产秒拍| 亚洲男人的天堂在线观看| 亚洲人成在线观看一区二区 | 国产精品视频久久一区| 欧美日韩视频在线观看一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 午夜在线精品| 亚洲欧美伊人| 午夜亚洲性色福利视频| 亚洲宅男天堂在线观看无病毒| 日韩午夜av| av成人免费| 一区二区三区国产盗摄| 一区二区三区国产精品| 一区二区三区不卡视频在线观看| 亚洲人成人一区二区在线观看| 亚洲高清在线观看一区| 亚洲激情亚洲| 亚洲美洲欧洲综合国产一区| 日韩一区二区免费高清| 日韩视频永久免费| 在线亚洲激情| 亚洲综合电影| 久久高清福利视频| 久久五月激情| 欧美国产大片| 欧美日韩在线观看一区二区| 国产精品久久999| 国产精品夜夜夜| 国语自产在线不卡| 亚洲第一天堂无码专区| 99精品国产一区二区青青牛奶| 一区二区精品| 性欧美在线看片a免费观看| 久久久久久久精| 欧美大片在线影院| 亚洲精品一区中文| 亚洲欧美日韩国产一区| 久久九九免费视频| 欧美精品久久久久久久免费观看| 欧美视频在线一区二区三区| 国产一区二区成人| 亚洲日韩欧美视频一区| 亚洲欧美日韩国产成人| 另类天堂av| 亚洲乱码国产乱码精品精天堂| 亚洲女爱视频在线| 久久野战av| 欧美午夜无遮挡| 一区二区亚洲欧洲国产日韩| 99ri日韩精品视频| 久久av在线看| 亚洲精品国产精品国自产观看| 亚洲欧美bt| 欧美另类视频在线| 韩国欧美一区| 亚洲免费一在线| 欧美成人综合在线| 亚洲一区亚洲| 欧美激情国产日韩| 国内一区二区在线视频观看| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲一区二区伦理| 欧美成人午夜剧场免费观看| 亚洲影视综合| 欧美日本一道本| 伊人久久综合| 欧美一区二区三区四区在线| 亚洲欧洲偷拍精品| 久久久免费精品视频| 国产精品蜜臀在线观看| 亚洲免费电影在线| 老牛影视一区二区三区| 亚洲女人av| 欧美体内she精视频在线观看| 亚洲国产精品成人精品| 久久久久久9| 亚洲一区二区在线免费观看| 欧美精品一区二区三区久久久竹菊 | 欧美激情中文字幕乱码免费| 国产一区二区三区四区| 亚洲一区激情| 91久久国产精品91久久性色| 久久综合99re88久久爱| 国内精品模特av私拍在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲经典在线| 免播放器亚洲一区| 亚洲福利视频二区| 久色婷婷小香蕉久久| 欧美一区二区免费视频| 国产美女精品人人做人人爽| 亚洲欧美成人网| 在线亚洲免费| 国产精品久久久久av| 亚洲一区日本| 亚洲一区二区三区视频| 国产精品入口日韩视频大尺度| 亚洲小少妇裸体bbw| 一本色道久久加勒比88综合| 欧美日韩一二区| 亚洲视频导航| 亚洲视频综合| 国产美女一区二区| 欧美自拍偷拍| 久久天天狠狠| 亚洲美女精品久久|