其他分享
首页 > 其他分享> > 3.22

3.22

作者:互联网

原题链接

题外话

今天的题,极大地打击了我,一开始的思路被自己hack之后,就完全没思路了
TAT

题意

n个人,每个人有一个有颜色的帽子~有可能是绿色(滑稽)~,然后他们知道有多少人和自己帽子颜色不同,设为ai(他们知道的有可能不对),询问如果每个ai都能满足输出Possible(有解就行)否则就是Impossible

思路

网上的思路都是倒着想,就是n-ai,的想法, 然后通过看ai 和 n-ai的关系来判断

代码

///*
//正在播放《フリージア》
//1:21  ━━━━━━●─────   5:35
//   ?   ?   ??   ?   ?
//```````'`...```````''`````````````'````````````````'`.`''
//```````''..`';;'```''```'''''''''''''`````````````````'':
//.````''''':;;!!:````'````'''''''''''``````````````````'':
//``''''''':;;;;;'```'``````''```````````____________```'':
//`````````:;;!;'```````````'```````'```|   所以说   |'``'':
//```````'|$&$%:````````````'```````````|不要停下来啊|''''':
//````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
//````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
//  ....'|&&@$!'........```:!;'....`:;:```````````````````'
//..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
//``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
//`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
//`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
//````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
//`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
//`````````````````:|&########################@@@$;::::::::
//``````````````````:!$@########################@%;:::'::::
//``````````..``````':|&#######################@@&!''''''::
//''''::'''`.`''''''':|@#######################@@&|:'`.`';!
//:::::::::``'''''';%@######################@@##@@&!::'';;;
//::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
//:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
//;;!;;;;;;'`::;%@#############################@@##@$!'';!!
//;;;;;;;;:``':::::;|$@############################@$!'`;!!
//::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
//`````````..````````'|@#####################$;!$$$&@@|''':
//'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
//''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
//:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
//:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
//
//                    だからよ...止まるじゃねえぞ
// */




#include <vector>
#include <algorithm>
#include <string>
#include<cstring>
#include <iostream>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <unordered_map>
#include <bitset>
#include <cassert>
#include <chrono>
#include <random>
#include <iomanip>
#include <unordered_set>
#include <ctime>
#include <chrono>
using namespace std;
// #define  ll long long
const int N =1e6+10;
#define PII pair<int , int > 
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pb push_back
#define sz(x) (int)(x).size()
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
int n , m ,t ;

#define __i __int128
//ll mod = 1e9+7;

string manacher(string s){
    if(s.size()<2)return s;
    string t ;t+='$';
    for(int i=0;i<s.size();i++)
        t +='#'+s[i];
    t+='@';
    int num = t.size();
    int p[num];
    int id =0 , mx= 0;
    int maxl = -1;
    int index =0;
    for(int j=1 ;j<num-1;j++){
        p[j] = mx>j?min(p[2*id-j],mx - j):1;
        while(t[j+p[j]]==t[j-p[j]])p[j]++;
        if(mx<p[j]+j){
            mx = p[j]+j;
            id = j;
        }
        if(maxl < p[j]+ 1){
            maxl = p[j]-1 ;
            index = j;
        }
    }
    int start = (index - maxl)/2;
    //cout <<start<<endl;
    return s.substr(start ,start+maxl);
    
}
int ar[100010];int br[100010];
vector<int >v[100010];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin>>n;int cnt =0 ;int sum =0;
    
    for(int i=0 ;i<n;i++){
         cin >>ar[i];
         v[n-ar[i]].push_back(i);
}   
int num = 1 ;
    for(int i=1;i<=n;i++){
        if(v[i].size()%i  )return cout<<"Impossible"<<endl,0 ;
        
        for(int j = 0;j<v[i].size();j++){
            br[v[i][j]] = num ;
            if((j+1)%i==0)num ++ ;
        }
    }
cout<<"Possible"<<endl;
for(int i=0;i<n;i++)cout<<br[i]<<" ";cout<<endl;
    
    return 0;

}

标签:..,ai,long,int,3.22,include,define
来源: https://www.cnblogs.com/gaohaoy/p/12544432.html