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

coreBugZJ

此 blog 已棄。

微軟2014實(shí)習(xí)生及秋令營技術(shù)類職位在線測試


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


解法:
窮舉兩元素交換,使用修改的歸并排序求逆序?qū)?shù),時間復(fù)雜度O(n*n*n*logn)。



4.Most Frequent Logs
不會。










posted on 2014-04-13 19:11 coreBugZJ 閱讀(3746) 評論(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>
            欧美国产另类| 亚洲精品精选| 性欧美videos另类喷潮| 欧美人与性动交a欧美精品| 欧美日韩精品免费观看视频完整| 亚洲一本大道在线| 欧美日本在线| 亚洲成色www8888| 宅男66日本亚洲欧美视频| 亚洲国产精品第一区二区| 欧美大片一区| 亚洲第一天堂av| 亚洲另类视频| 亚洲视频中文| 久久久久久久久久久久久女国产乱 | 性亚洲最疯狂xxxx高清| 久久婷婷国产综合精品青草| 久久天天躁狠狠躁夜夜av| 欧美国产视频一区二区| 亚洲午夜高清视频| 猫咪成人在线观看| 国产精品乱子乱xxxx| 激情综合在线| 亚洲欧美中文日韩在线| 国产亚洲一区二区三区在线播放| 老司机免费视频一区二区| 欧美日韩免费一区二区三区视频 | 国产综合色精品一区二区三区| 亚洲国内高清视频| 欧美一区二区网站| 亚洲国产一区二区三区青草影视| 亚洲午夜久久久久久久久电影网| 久久丁香综合五月国产三级网站| 欧美日本中文字幕| 亚洲黄色片网站| 久久久久久久久综合| 亚洲午夜在线视频| 欧美极品一区| 亚洲欧洲一区二区三区久久| 久久成人这里只有精品| 亚洲午夜激情网站| 国产精品v欧美精品v日本精品动漫 | 国产精品福利久久久| 亚洲精品国产拍免费91在线| 久久综合一区| 欧美一区二区久久久| 亚洲黄色免费网站| 亚洲性感激情| 欧美大片在线观看一区| 亚洲午夜久久久久久久久电影院 | 亚洲婷婷在线| 亚洲黄色成人| 欧美电影在线免费观看网站| **性色生活片久久毛片| 久久久噜噜噜久久| 午夜视频久久久| 国产精品日韩精品欧美在线| 一区二区欧美在线观看| 亚洲三级观看| 欧美久久电影| 一区二区三区回区在观看免费视频| 亚洲国产精品一区| 欧美国产日韩一区| 日韩视频免费观看高清在线视频| 亚洲福利久久| 欧美日韩日日夜夜| 一区二区三区视频在线看| 最新亚洲电影| 欧美视频精品在线观看| 国产精品理论片在线观看| 日韩视频在线播放| 99精品国产高清一区二区| 欧美精品一二三| 在线视频一区观看| 亚洲私拍自拍| 国产日产亚洲精品| 久久综合国产精品| 美女999久久久精品视频| 亚洲国产精品一区二区第一页| 亚洲国产另类久久精品| 欧美午夜www高清视频| 欧美怡红院视频一区二区三区| 亚洲欧美国产精品专区久久| 狠狠色2019综合网| 91久久一区二区| 国产精品区二区三区日本| 久久激情婷婷| 欧美精品一区二区三| 亚洲男同1069视频| 久久精品亚洲一区| 在线视频亚洲欧美| 久久久国产成人精品| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧洲日产国码二区| 国产精品永久免费在线| 嫩草国产精品入口| 国产精品亚发布| 欧美大片免费观看在线观看网站推荐| 久久久久久一区二区三区| 99国产精品视频免费观看| 亚洲欧美日韩精品久久奇米色影视| 亚洲精品久久久久久下一站| 一区二区三区精品视频| 在线观看日韩av电影| 亚洲国内精品| 合欧美一区二区三区| 99国产精品一区| 伊人久久亚洲美女图片| 亚洲尤物影院| 在线中文字幕一区| 老司机一区二区三区| 久久成年人视频| 欧美午夜激情小视频| 亚洲国产精品第一区二区三区 | 亚洲一区精品电影| 91久久久在线| 久久久久久久高潮| 欧美在线精品免播放器视频| 欧美日韩美女在线观看| 亚洲第一精品久久忘忧草社区| 国产欧美日韩麻豆91| 夜夜嗨一区二区三区| 亚洲国产成人久久综合| 久久久久久久久久久久久久一区 | 国产精品一级二级三级| 99热免费精品| 正在播放日韩| 欧美美女福利视频| 亚洲国产精品久久久久秋霞不卡 | 久久裸体艺术| 国产在线不卡精品| 午夜精品美女自拍福到在线| 亚洲视频网站在线观看| 欧美久久久久久久久久| 亚洲第一福利在线观看| 亚洲欧洲日本一区二区三区| 久久字幕精品一区| 毛片av中文字幕一区二区| 精品动漫3d一区二区三区| 久久精品视频播放| 欧美高清在线一区| 亚洲精品日韩在线| 欧美日韩精品免费在线观看视频| 亚洲伦伦在线| 欧美一级在线播放| 国产伊人精品| 久久一本综合频道| 亚洲三级性片| 午夜免费在线观看精品视频| 国产日韩成人精品| 久久久久久久综合日本| 亚洲激情偷拍| 亚洲欧美日本日韩| 精品粉嫩aⅴ一区二区三区四区| 狂野欧美激情性xxxx欧美| 亚洲电影中文字幕| 亚洲综合视频1区| 国产亚洲毛片| 噜噜噜91成人网| 一本久久综合亚洲鲁鲁五月天| 亚洲三级免费电影| 亚洲午夜高清视频| 国产精品人成在线观看免费| 午夜免费在线观看精品视频| 蜜臀久久99精品久久久久久9| 91久久精品美女| 国产精品v日韩精品v欧美精品网站| 亚洲综合视频网| 欧美大片18| 翔田千里一区二区| 亚洲美女av黄| 激情五月婷婷综合| 欧美日韩精品免费观看视频完整 | 日韩视频在线观看| 国产亚洲网站| 欧美日韩黄色大片| 久久久免费av| 亚洲欧美bt| 亚洲欧洲精品一区二区三区不卡 | 久久久久久久久综合| 99精品国产高清一区二区| 国产视频在线观看一区二区三区 | 欧美午夜免费影院| 久久久五月婷婷| 亚洲欧美激情一区| 亚洲黄色一区| 久久伊伊香蕉| 亚洲淫性视频| aⅴ色国产欧美| 91久久久一线二线三线品牌| 国产一区二区高清| 国产精品一区二区三区四区| 欧美日韩成人一区二区三区| 老司机精品视频网站| 午夜精品福利视频| 99综合电影在线视频| 亚洲国产精品视频一区| 免费一级欧美片在线播放| 久久久国产视频91| 久久久久久国产精品mv|