| ||||||||||
| 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:求大神 不知道哪里WA了 我是按位处理的In Reply To:求大神 不知道哪里WA了 我是按位处理的 Posted by:liyan199311 at 2017-03-31 17:58:25 > #include<iostream>
> #include<string>
> #include<vector>
> #include <fstream>
> #include<bitset>
> using namespace std;
>
> string np_data;
> int length;
> __int64 data;
> unsigned __int64 cur_data;
> bitset<64> bs;
> int foundIndex = 63;
>
> bool handData()
> {
> return true;
> }
>
> void add(int index)
> {
> bool cin = 1, next_cin = false;
> do
> {
> if (np_data[length - 1 - index] == 'n')
> {
> next_cin = !bs[index];
> }
> else
> {
> next_cin = bs[index];
> }
> bs[index] = !bs[index];
> cin = next_cin;
> index++;
> } while (cin);
> }
>
> int main()
> {
> //ifstream in("d:\\document\\test.txt");
> int max_case;
> cin >> max_case;
> while (max_case--)
> {
> cin >> length >> np_data >> data;
> cur_data = 0;
> bool result = true;
> bool hasFound = true;
> foundIndex = length - 1;
> bs = bitset<64>(data);
> if (bs[63])
> {
> hasFound = false;
> for (int i = 63; i >= length; i--)
> {
> if (!bs[i])
> {
> result = false;
> break;
> }
> }
> if (result)
> {
> for (int i = length - 1; i >= 0; i--)
> {
> if (np_data[length - 1 -i] != 'n')
> {
> if (!bs[i])
> {
> result = false;
> break;
> }
> else
> {
> bs[i] = 0;
> }
> }
> else
> {
> bs[i] = 1;
> if (bs[i])
> {
> hasFound = true;
> break;
> }
> }
> }
> }
> }
> else
> {
> unsigned __int64 max = 0;
> for (int i = 0; i <= length - 1; i++)
> {
> max = max << 1;
> if (np_data[i] != 'n')
> {
> max += 1;
> }
> }
> if (max < (unsigned __int64)data)
> {
> result = false;
> }
> }
> if (result && hasFound)
> {
> for (int i = 0; i < foundIndex; i++)
> {
> int index = length - 1 - i;
> if (np_data[index] == 'n' && bs[i])
> {
> add(i + 1);
> }
> }
> for (int i = length - 1; i >= 0; i--)
> {
> cout << bs[i];
> }
> cout << endl;
> }
> else
> {
> cout << "Impossible" << endl;
> }
> }
> system("pause");
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator