首页 > 其他分享 >P2055 [ZJOI2009] 假期的宿舍

P2055 [ZJOI2009] 假期的宿舍

时间:2024-03-08 15:56:49浏览次数:30  
标签:vis 假期 55 belong int P2055 ZJOI2009 now know

原题链接

题解

这种让来让去让我想到了二分图!!

注意细节!!剩余的就是模拟了

code

#include<bits/stdc++.h>
using namespace std;
int stu[55],gohome[55],know[55][55];
int n;
int belong[55]={0};
int vis[55]={0};
int settle(int now)
{
    if(vis[now])return 0;
    vis[now]=1;
    for(int i=1;i<=n;i++)
    {
        if(know[now][i]&&stu[i])//想借别人的床不仅得认识他,他还得有床!!即是个学生
        {
            if(!belong[i]||settle(belong[i]))
            {
                belong[i]=now;//用了别人的床位要记录!!!
                return 1;
            }
        }
    }
    return 0;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        memset(belong,0,sizeof belong);//不要写成sizeof 0!!!!
        cin>>n;
        for(int i=1;i<=n;i++) cin>>stu[i];
        for(int i=1;i<=n;i++) cin>>gohome[i];

        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++) cin>>know[i][j];
            know[i][i]=1;//你也可以睡自己的床
        }

        int ans=1;
        for(int i=1;i<=n;i++)
        {
            if(gohome[i]&&stu[i]) continue;
            ans&=settle(i);
            memset(vis,0,sizeof vis);
            if(!ans)break;
        }
        if(ans)printf("^_^\n");
        else printf("T_T\n");
    }
    return 0;
}

标签:vis,假期,55,belong,int,P2055,ZJOI2009,now,know
From: https://www.cnblogs.com/pure4knowledge/p/18061156

相关文章

  • 假期vue学习笔记13 插槽
     <template>  <divclass="category">    <h3>{{title}}分类</h3>    <slot></slot>  </div></template><script>  exportdefault{    name:'Category',    pr......
  • 假期vue学习笔记14 求和案例vue版本
     <template>  <div>    <h1>当前求和为:{{sum}}</h1>    <selectv-model.number="n">      <optionvalue="1">1</option>      <optionvalue="2">2</option>......
  • 假期vue学习笔记15 求和mapstate_mapgetter
     importVuefrom'vue'importAppfrom'./App.vue'importstorefrom'./store'Vue.config.productionTip=falsenewVue({  el:'#root',  render:h=>h(App),  store,  beforeCreate(){    Vue.......
  • 假期vue学习笔记16 vuex多组数据共享
     <template>  <div>    <h1>当前求和为:{{sum}}</h1>    <h1>十倍的和为:{{bigSum}}</h1>    <h1>{{xuexiao}}</h1>    <h1>{{xueke}}</h1>    <h3>下方总人数为:{{$store.state.personList......
  • 假期vue学习笔记07 todo事件的本地存储
     用本地存储改写前面的todo案例 <template>    <li>      <label>        <inputtype="checkbox":checked="todo.done"@change="handleCheck(todo.id)"/>        <spanv-show="!tod......
  • 假期vue学习笔记08 绑定和解绑
     <template>  <divclass="app">    <h1>{{msg}}</h1>    <!--props子给父传递事件-->    <School:getSchoolName="getSchoolName"/>    <!--通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(第一种写法,使用@过v-......
  • 假期vue学习笔记09 全局事件总栈
     <template>  <div class="school">    <h2>学校名称:{{name}}</h2>     <h2>学校地址:{{address}}</h2>  </div></template><script>  exportdefault{    name:'School'......
  • 假期vue学习笔记10 pubsub
     <template>  <divclass="app">    <h1>{{msg}}</h1>    <School/>    <Student/>  </div></template><script>importStudentfrom'./components/Student.vue'imp......
  • 假期vue学习笔记11 动画
    <template>  <divid="root">    <Test/>    <Test2/>    <Test3/>  </div></template><script>importTestfrom'./components/Test.vue'importTest2from'./comp......
  • 假期vue学习笔记01 ref
    <template>  <div>    <h1v-text="msg"ref="title"></h1>    <button@click="showDOM">点我输出上方的DOM元素</button>    <School/>  </div></template><script......