SEERC 2018 H - Modern Djinn (随机化)

简介: SEERC 2018 H - Modern Djinn (随机化)

linkkkkk

题意:

有n个人,每个人的属性值为0或1;m个愿望,x − > y,如果一个愿望被满足的话,说明x的属性值为1,y的属性值为0。要求至少满足m / 4 + 1愿望,输出方案数。

思路:

对于每一个愿望,都有4种方案,只有一种是正确的,概率为1/4

随机赋值0 / 1的话,大概有m / 4个愿望被满足。

跑得飞快。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;typedef unsigned long long ull;
typedef pair<ll,ll>PLL;typedef pair<int,int>PII;typedef pair<double,double>PDD;
#define I_int ll
inline ll read(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
#define read read()
#define rep(i, a, b) for(int i=(a);i<=(b);++i)
#define dep(i, a, b) for(int i=(a);i>=(b);--i)
ll ksm(ll a,ll b,ll p){ll res=1;while(b){if(b&1)res=res*a%p;a=a*a%p;b>>=1;}return res;}
const int maxn=2e5+7,maxm=1e6+7,mod=1e9+7;
int x[maxn],y[maxn],a[maxn];
int main(){
  srand(time(0));
  int _=read;
  while(_--){
    int n=read,m=read;
    for(int i=1;i<=m;i++){
      x[i]=read,y[i]=read;
    }
    int sum=m/4+1,now=0;
    while(1){
      now=0;
      for(int i=1;i<=n;i++) a[i]=rand()%2;
      for(int i=1;i<=m;i++){
        if(a[y[i]]==0&&a[x[i]]){
          now++;
        }
      }
      if(now>=sum) break;
    }
    cout<<now<<endl;
    for(int i=1;i<=m;i++) 
      if(a[y[i]]==0&&a[x[i]])
        cout<<i<<" ";
    puts("");
  }
  return 0;
}


目录
相关文章
|
3月前
|
Shell C语言
《Programming from the Ground Up》阅读笔记:p117-p146
《Programming from the Ground Up》阅读笔记:p117-p146
|
8月前
|
机器学习/深度学习 安全 算法
【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》
【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》
197 0
|
8月前
|
机器学习/深度学习 移动开发 安全
【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》
【现代密码学】笔记6--伪随机对象的理论构造《introduction to modern cryphtography》
121 0
|
机器学习/深度学习 人工智能 算法
【读书笔记】Algorithms for Decision Making(1)
我自己的粗浅看法:机器学习要不是拟合逼近(经常提及的machine learning),要不就是决策过程(reinforcement learning),这本书主要讲述后者的前世今生。
336 0
【读书笔记】Algorithms for Decision Making(1)
|
算法 决策智能
【读书笔记】Algorithms for Decision Making(14)
本部分将简单游戏扩展到具有多个状态的连续上下文。马尔可夫博弈可以看作是多个具有自己奖励函数的智能体的马尔可夫决策过程。
374 0
【读书笔记】Algorithms for Decision Making(14)
|
机器学习/深度学习 API
【读书笔记】Algorithms for Decision Making(8)
解决存在模型不确定性的此类问题是强化学习领域的主题,这是这部分的重点。解决模型不确定性的几个挑战:首先,智能体必须仔细平衡环境探索和利用通过经验获得的知识。第二,在做出重要决策后很长时间内,可能会收到奖励,因此必须将以后奖励的学分分配给以前的决策。第三,智能体必须从有限的经验中进行概括。
219 0
【读书笔记】Algorithms for Decision Making(8)
|
算法 关系型数据库 数据建模
【读书笔记】Algorithms for Decision Making(4)
本部分讨论从数据学习或拟合模型参数的问题,进一步讨论了从数据中学习模型结构的方法,最后对决策理论进行了简单的概述。
108 0
【读书笔记】Algorithms for Decision Making(4)
|
机器学习/深度学习 算法 算法框架/工具
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
179 2
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
|
决策智能
【读书笔记】Algorithms for Decision Making(13)
本部分将简单游戏扩展到具有多个状态的连续上下文。马尔可夫博弈可以看作是多个具有自己奖励函数的智能体的马尔可夫决策过程。
149 0

热门文章

最新文章