| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:炫耀一下自己:一次ACIn Reply To:炫耀一下自己:一次AC Posted by:306457592 at 2009-08-28 21:27:47 > 是用暴搜来做的。
> #include <iostream>
> #include <string>
> #include <algorithm>
> using namespace std;
>
> string t;
> char s[24], a[104];
>
> int cmp(const void* p, const void* q) {
> return *(char*)p - *(char*)q;
> }
>
> bool isvalid() {
> char p, q;
> int i, j;
> int n = strlen(s);
> int m = strlen(a) / 2;
>
> for (j=0; j < m; j++) {
> p = a[j*2];
> q = a[j*2+1];
> for (i=0; i < n; i++) {
> if (s[i] == p)
> break;
> if (s[i] == q)
> return false;
> }
> }
> return true;
> }
>
> int main()
> {
> int i, j, n;
>
> while (getline(cin, t)) {
> n = t.size();
> for (i=j=0; i < n; i++) {
> if (t[i]>='a' && t[i]<='z') {
> s[j] = t[i];
> j++;
> }
> }
> s[j] = '\0';
>
> getline(cin, t);
> n = t.size();
> for (i=j=0; i < n; i++) {
> if (t[i]>='a' && t[i]<='z') {
> a[j] = t[i];
> j++;
> }
> }
> a[j] = '\0';
>
> n = strlen(s);
> qsort(s, n, sizeof(char), cmp);
> if (isvalid())
> printf("%s\n", s);
> while(next_permutation(s, s+n))
> if (isvalid())
> printf("%s\n", s);
> printf("\n");
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator