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

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 閱讀(3759) 評論(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>
            亚洲精品久久久久中文字幕欢迎你 | 欧美福利视频一区| 欧美777四色影视在线| 欧美一区二区三区四区在线观看| 免费在线观看一区二区| 久久爱91午夜羞羞| 国产精品大片| 99riav国产精品| 亚洲精品偷拍| 老色鬼精品视频在线观看播放| 欧美一级专区| 国产精品啊啊啊| 日韩视频在线免费| 亚洲精品婷婷| 欧美精品二区| 亚洲欧洲一区二区天堂久久 | 欧美国产欧美综合 | 亚洲欧美国产高清| 亚洲一区二区三区乱码aⅴ| 欧美激情久久久久久| 美女久久一区| 在线看成人片| 久久久亚洲精品一区二区三区 | 亚洲国产精品成人| 久久精品国产亚洲一区二区三区| 久久成人免费| 国色天香一区二区| 欧美一级播放| 久久频这里精品99香蕉| 国产日韩精品一区二区浪潮av | 一本色道久久| 亚洲一级在线观看| 欧美午夜免费| 亚洲综合视频一区| 欧美亚洲视频在线看网址| 国产精品二区在线观看| 亚洲欧美另类国产| 久久久久欧美精品| 影音先锋在线一区| 欧美1区视频| 日韩一级在线观看| 欧美一区二区三区男人的天堂| 国产日韩欧美在线看| 久久精品国产视频| 亚洲电影免费在线观看| 妖精成人www高清在线观看| 欧美日韩精品一区二区| 亚洲专区欧美专区| 久久视频精品在线| 亚洲人久久久| 国产精品美女久久久免费| 性久久久久久久| 欧美高清视频在线| 在线一区日本视频| 国产午夜久久| 欧美激情a∨在线视频播放| 99国产精品私拍| 久久精品在线观看| 亚洲人成在线观看| 国产精品婷婷| 嫩草成人www欧美| 一本色道久久综合狠狠躁篇的优点| 欧美一区二区高清| 最新成人av网站| 国产精品视频自拍| 免费成人美女女| 亚洲欧美成人| 亚洲毛片在线看| 久久三级福利| 亚洲女女女同性video| 激情一区二区三区| 国产精品v欧美精品∨日韩| 久久久久久久精| 一片黄亚洲嫩模| 欧美顶级大胆免费视频| 午夜精品视频在线| 亚洲精品乱码视频| 国内久久视频| 国产精品爱啪在线线免费观看| 男人的天堂成人在线| 亚洲一区日韩| 日韩午夜在线视频| 欧美国产精品v| 久久精品国产亚洲aⅴ| 亚洲少妇中出一区| 亚洲高清免费视频| 国产一区二区三区四区| 欧美色综合天天久久综合精品| 久久免费99精品久久久久久| 亚洲欧美日韩精品久久亚洲区| 亚洲精品视频免费| 欧美大片国产精品| 久久久久久久久久久久久9999| 亚洲欧美激情四射在线日 | 久久九九电影| 午夜精品网站| 亚洲一本大道在线| 正在播放欧美一区| 亚洲精品影院| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美午夜久久久| 欧美视频日韩| 欧美日韩精品综合| 欧美日本高清| 欧美日韩mv| 欧美色播在线播放| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩国产成人在线91| 欧美ed2k| 欧美日韩亚洲免费| 国产精品vvv| 国产精品日韩在线一区| 国产精品美女久久久久av超清| 国产精品久久久久永久免费观看 | 亚洲国产日韩欧美在线动漫| 欧美国产一区二区在线观看| 欧美高清视频一区| 亚洲国产欧美一区二区三区久久| 欧美xx视频| 亚洲经典在线看| 99国产精品久久久| 亚洲性夜色噜噜噜7777| 亚洲淫性视频| 久久精品视频在线播放| 麻豆精品视频在线观看| 欧美激情国产日韩| 国产精品99免费看| 国产毛片精品视频| 尤物九九久久国产精品的分类| 亚洲黄色一区二区三区| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久精品视频网| 免费成人高清| 亚洲每日更新| 欧美在线视频观看免费网站| 麻豆亚洲精品| 欧美午夜在线视频| 国产一区二区精品| 亚洲国产一成人久久精品| 一区二区三区日韩精品| 欧美一区观看| 欧美成人乱码一区二区三区| 9久草视频在线视频精品| 亚洲欧美国产三级| 麻豆精品网站| 国产精品亚洲一区| 亚洲青涩在线| 欧美制服丝袜| 亚洲人成人99网站| 性色av一区二区三区在线观看| 猛男gaygay欧美视频| 国产精品美女www爽爽爽视频| 亚洲福利在线观看| 午夜精品视频在线观看| 欧美激情影音先锋| 午夜国产一区| 欧美日韩国语| 亚洲激情成人| 久久久久久久综合日本| 亚洲精品综合精品自拍| 久久漫画官网| 国产乱码精品一区二区三区av| 亚洲国产裸拍裸体视频在线观看乱了| 午夜精品久久久久久久久久久久| 欧美国产另类| 欧美一二三区精品| 国产精品第一页第二页第三页| 亚洲国产一区二区三区青草影视 | 国产一区二区三区久久久久久久久| 日韩视频免费| 免费在线观看日韩欧美| 亚洲一区二区三区精品在线| 欧美激情二区三区| 亚洲电影下载| 麻豆精品传媒视频| 午夜精品久久久| 国产精品久久久99| aaa亚洲精品一二三区| 欧美国产第一页| 久久久噜噜噜久噜久久 | 亚洲精品美女在线观看| 久久综合国产精品台湾中文娱乐网| 亚洲一区二区在线播放| 欧美激情综合色| 亚洲精品美女在线观看| 欧美高清在线一区| 久久午夜精品一区二区| 国产中文一区二区三区| 欧美在线地址| 欧美一区国产一区| 国产视频亚洲| 久久精视频免费在线久久完整在线看| 亚洲欧美在线看| 国产欧美日韩免费| 欧美专区第一页| 亚欧成人在线| 精品91免费| 免费不卡在线观看| 老司机精品久久| 亚洲美女福利视频网站|