poj 3660 传递闭包 **

题意:题目给出了m对的相对关系,求有多少个排名是确定的。

链接:点我

如果这个点到其他点的关系是确定的,那么这个点就是确定的,注意如果这个点到不了其他点,但其他点能到这个点,那么这个点和其他点的关系是确定的

样例图:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqkAAAHlCAIAAABZNvIaAAAgAElEQVR4nO3dL9CrSJ/3YapWLJLaWpF1yMiIFZFUrYlEIpFIJA4ZGYlERiIxWxUZiURmHRLZMq/geXv6kNw5uROggf5camrmTPKbTNLfpv9adwAAYBJLdwEAAGBSZD8AAGYh+wEAMAvZDwCAWch+AADMQvYDAGAWsh8AALOQ/QAAmIXsBwDALGQ/AABmIfsBADAL2Q8AgFnIfgAAzEL2AwBgFrIfAACzkP0AAJiF7AcAwCxkPwAAZiH7AQAwC9kPAIBZyH4AAMxC9gMAYBayHwAAs5D9AACYhewHAMAsZD8AAGYh+wEAMAvZDwCAWch+AADMQvYDAGAWsh8AALOQ/QAAmIXsBwDALGQ/AABmIfsBADAL2Q8AgFnIfgAAzEL2AwBgFrIfAACzkP2ABmVZuq7rum6e57prAWAcsh/QYLPZWJZlWZZt27prAWAcsh+YWpZl1v8XRZHucgAYh+wHpiYf+oMg0F0LABOR/cCkLpdLF/yu6wohdJcDwERkPzCpMAy77E+SRHctAAxF9gMTads2jmM503+9XnVXBMBQZD8whSzLHMeRwX84HHRXBMBcZD8wOnVhfxf8zPQD0IjsB0YnF/ZzmA+AOSD7gXG1bSuf+HncBzAHZD8wot40v+5yAOB+J/uB8aRp2pvm110RANzvZD8wEjX4meYHMCtkPzA8dWH/Z6v6y7L0PI8eA4AxkP3A8OTC/o+383WvwC1/AMZA9gPD+35hP8sDAYyHlgUYmDrg//GLkP0AxkPLAgxskCt6yX4A46FlAQY2yEk+ZD+A8dCyAENSt/Z98zpkP4Dx0LIAg1GD/5sB/zvZD2BMtCzAML7f068i+wGMh5YFGIbneTKwoyhqmuabVyP7AYyHlgUYxul0sh64rhvH8Qf9ALIfwHhoWYDBFEWx2+0eewC2bf+qB3C5XGTXYdSCAZiJ7AcG9lMPQMZ5FEWXy+XFK0RR1P3hJEmmqhqAQch+YESv+wGyK1DXtfpvydOBrterrsoBrBjZD4zurz0Ay7L2+32e593uACb7AYyKxgWYVFVVcRy7rvu6K/Ca67pc7wvgY2Q/oNP1eg3D0Lbt38Y/1/sC+BjZD+jXtm2WZdvt9v3sj6JId9UAlorsB+ZFLvQrikJ3LQDWiewH5kU+2esuBMBq0b4A80L2Axgb7QswL2Q/gLHRvgDzQvYDGBvtCzAvZD+AsdG+APNC9gMYG+0LMCNlWZL9AMZG+wLMiNzcT/YDGA/tCzAjHNsHYAJkPzAjPPQDmABNDDAXl8ulC37XdXXXAmDNyH5gLqIo6rI/SRLdtQBYM7IfmIWmaeRNvtfrVXc5ANaM7AdmIY7jLvh3u53uWgCsHNkPzAJX9wKYDNkP6McqPwBTIvsB/cIwZJUfgMmQ/YBmWZbJbf2s8gMwAbIf0Eld3n84HHSXA8AIZD+gk7q8XwihuxwARiD7AZ1Y3g9gemQ/oNNkB/iXZem6breVII7jpmnGfkcAs0X2A9qoq/zGfq8u+CXbto/H49hvCmCeyH5AG5nHQRCM/V7H49F6EEURAwCAgch+QJs0TS3L8n1/ylV+RVHsdjt1ACBJkrZtJysAgHZkP6CTlsduIYTv++oAwGazOZ/P01cCQAuyHzBUbwDAsizP8+q61l0XgNGR/YDRzuez3GcozxXmpAFg3ch+wHRt2yZJosb/drvldGFgxch+APf7/V7Xted5ag+ATYDAWpH9AP6R57njODL+0zTVXRGA4ZH9AP7QNI06AED8A+tD9gPoE0IcDgfiH1grsh/AE8Q/sGJkP4DniH9grch+rEpZlp7n5Xmuu5CV6MV/HMds/QdWgOzHqnTH1Ni2rbuQ9ejFP6f/AitA9mNVZETpLmRVHs//3+/3HP4DLBdNJFaF7B9PWZbb7VbtAQRBwBXAwBLRRGJVyP6xnU4n9fCf7gpgegDAstBEYlXI/gm0bRvHsToAYNt2HMf0AICloInEqti2TfZPo65rdQ2gHAPQXReAv6OJxHq0bduFkOM4umsxxeVy6d0AtN/v67rWXReAV8h+rMf1epXxo7sWs/R6AI7jcMQCMGdkP9Yjy7Iue6Io0l2LibIsk3Mu3S6Atm11FwXgCbIf6yEXoJ1OJ921GKqu691upx4ExDEAwAyR/VgPOexclqXuWswlhEiSRF0BwEUAwNyQ/ViJNE1l2LDZTLuyLLvzleX4PxcBAPNB9mMN1OAPgkB3Objf7/e2bdVNgPv9nul/YCbIfize6XSSAXM4HHi+nBV1/N91Xbb/AXNA9mPZiqIg+Gcuz3O5/t9xHFZjANqR/ViwqqpkqHieR/DPVlmW6i0AWZbprggwGtmPpbrdbq7rysFk5pJnrqoq+f+rO4OBJZmALmQ/FkkIIfeRO47DLPIiNE2j7v53HCdNU0ZrgOmR/Vgk3/e7/LBt+3K56C4H7xJCyP938vwfpgCAiZH9WB71AlliY4nO57M6/m9Z1na7LYpCd12AKch+LIw8tN+yrDiOdZeDDwkhTqeTugCwW7DJGcDABMh+LEme5zInfN/XXQ6+1bZtkiTqDUDd/9nb7aa7NGDNyH4shhr8u92ONWKr0TRNGIbWn+I4ZiMAMBKyH8vQC3529K1PVVXqGcDdQk56AMAYyH4sAMFvjsvlou4D7HoAx+NRd13AqpD9mDuC30BFUfR6AFwEDAyI7MesEfwm6/UAiH9gKGQ/5ovghxBCXQRA/AODIPsxU03TyK1fBL/JiH9gcGQ/Zkqe/Lrdbgl+w/Xin6V/wJfIfsxRWZayoeegN9wf4p+Nf8A3yH7MjhBiu912TXwYhrrLwVwIIfb7fffF4B4H4BtkP2bndDp17bvjODzeQSWXf3qep7sWYMHIfszL5XKRS/xOp5PucjAvbdvKrwf9QuBjZD9mpKoqebEbD3Z4Ss76M+wPfIzsx1zcbjd5pztr+/EThv2B75H9mIW2beUJbq7rcoUrfsKwP/A9sh/6CSE8z5Pr+6qq0l0RZo1hf+BLZD/0C4Kga8pt2y7LUnc5mDs57L/dbuu61l0OsDxkPzSL41ge2HI+n3WXgwVQh/0ty9rv93meCyF01wUsBtkPneRWfg5qxa+kaWr9yXGcKIoYBgDeQfZDm/P5LBvuOI51l4OFuV6vYRiqAwAMAwBvIvuhx/V6la227/u6y8FStW2bZZk8BFodBmAkCfgJ2Q8NbrfbZrORu7R5RMP3ng4D+L7PQRHAI7IfU+tt5WeLNgb0OAzAXgDgEdmPqcnN2bZts5UfI1EXAzqOUxSF7oqAGSH7MSl1Rx/NMUZVFIW8HsKyrDAML5eL7qKAWSD7MZ0sy2RDnKap7nKwfnVd95YBuq6bJAmzADAc2Y+JlGWprsDSXQ5M0bat7/vWg91ul2UZy01gJrIfU1Av593tdizsx8Su12sUReoUgNoTPZ/PfCdhFLIfo2uaRl7Oyx190Ot8Psv7I1SO4yRJwoZAGILsx7iEEHJHHwv7MRPdVsD9ft/rAWw2Gy6VgAnIfoxLnWrljj7Mze12S9NUjkt1PM9jMSDWjezHiNQdfafTSXc5wI/O57M8a7LDFABWjOzHWNQdfVzVg/lr2zZJEqYAYAKyH6PI81w2oIfDQXc5wLvquvY8jykArBvZj+Gpwc+OPizR4xRAGIbX61V3XcAwyH4MrBf8zJhioR6nACzLcl33eDyyTxVLR/ZjSAQ/VuZxCkDOZOV5zpgWForsx2BOpxPBj1W6Xq9hGD4eC+g4DlcEYYnIfgwjiiKCH+smhMjzXF5C3ZsL4IogLAjZj28JIdQDfPb7PcGPdbvdbsfjsXcikOz4ckUQ5o/sx1eappFH9lqWFQQBM6AwB1cEYaHIfnyuqir10SdJEt0VAXq8uCIojmOGATA3ZD8+VJal+riTZZnuigDNfroiyLZtegCYFbIfnzgej+qTDZf0AKqnVwTRA8B8kP34nbqu1cca13W5lhf4SVEU6oKYrgfg+36appfLhVWx0IXsxy8cj0fbttUlzRxwBvzVYw9A7T0nScKSQEyM7Mdbeo/73co+GizgfS96ANvtlssCMCWyH393Op3Ux33aKeBjVVXleR7H8eNRwfSnMRmyH6+0baue20PzBAwrz3N1vwwda0yD7MePrterulB5t9vRKgGDa5qmd05wGIYcD4xRkf14rresL4oiHveB8fQGACzL8jzvfD7rrgvrRPajr7esz3EcGiBgAo8DAN1GgOPxyG5ADIvsxx/yPO8t62PsEZhSWZaPPQDOBcKwyH78o6oqNfhZ1gfocrvdHm8JogeAoZD9+BchhNx8zGJjYA66CwIezwaOoogBOXyD7Me/JEkiWxaaFWBWnp4LdDgcWIuDz5D9uN/v9zRNZYNyPB51lwPgiac9ABYD4gNkv+nato3jWH2S0F0RgFcul0sQBCwGxDfIfqNlWaYuJjocDizuAxbhdrvFcfy4GDBJEsYA8Fdkv7nUcX6CH1giIUSWZdvtVv0tbzYb1gHgNbLfUGrwu66b57nuigB87nEpgOd5LNrFT8h+E2VZxuM+sD7n83mz2ag9ALr1eIrsN07TNPIAH4IfWJm2beV+3W78/3K56C4Ks0P2GyeKoq5R2O12BD+wSnVdq2d0bjab0+mkuyjMCNlvFnWavygK3eUAGIv69N9J01R3UZgLst8gavCzjx9Yvaqq4jhWjwQm/tEh+43Qtq3v+6zvAwwkhFAvBgzDkPX/IPvX73q9qh1/z/MIfsAovfi3LGu/3+d5TlNgLLJ/5U6nk7rkJwxDfu2AgYQQ6uBfx3Ec7u8wE9m/ZuoEv23b7PQFDHe9XsMwVJ8HLMvyfZ9jgE1D9q+WGvy73Y4ZPgCdtm17JwFvt1uaCKOQ/evUW9LPOD+AR2pD4TgO+37NQfavEMEP4E1FUaiXASZJMkGLUZalugCZK0WmR/avDcEP4Ffquu6N/1+v11HfUQ1+uSBp1HdED9m/HkKIIAgIfgC/1TsCZOwBgOPxaD2oqmqkt8Mjsn8lmqbZ7/cEP4CP5Xmujv9PMABwv9/lE4vrulmWjf126JD9a3C9XtWLO6MoIvgBfKBpmt4pQGOvAKiqSn07Th2eBtk/tW6Ry4BrW/I8l7t1bdum4wzgSxMPAMjLRYn/yZD9U5OLXAZZ25LnufzBbDabCQboAJhg4gGA3qnDzP2PjeyfmrrIZcCX2u/3TdMMUiEAdKYcABBCeJ7XvZHv+yO9CzpkvwbfZ39d16zsAzCBKQcA1Ll/DhoaFdmvwTfZL4Q4Ho/qcdwEP4CxTTYAEIahnMRkLHM8ZL8GH2f/5XJRj+CwbZs7uABMY5oBACGEXBTled6wLw6J7Nfgg+xvmkY9t6eb4OfuDQATm2AA4Hq9yqHN0+k07IujQ/Zr8NvsP51O6o+NK7cBaDTBAIA8m9y2bdb8j4Hs1+BX2a+ez29ZVhAEzIEB0G7sAQC55n+73bKkaXBkvwbvZ78a/Nvt9nK5jF8dALzlcQAgjuO2bQd58dvtJvsWURQN8pqQyH4N3sn+tm3jOJZ/ksX8AOapNwDgOM5Qk/Tn81m+LIf9DYvs1+Cv2Z9lmfpbIvgBzNnjAMBQ45Ryyx/xPyyyX4PX2d+b4Cf4ASxCWZbqJmTLsnzfv91u37xm76xf4n8oZL8GL7JfDf4B7/sBgGn09iXZtv3lFADxPwayX4On2c8EP4B16LVm3wc28T84sn9qWZY9Zj8T/ABWpq5ruU/Psqwoir7Zn9yLf844+RLZP7XNZtN9d4Mg6P4OE/wAVqkX2F8eQ957tS9XEhiO7J+a/OJ2Ac8EP4AVE0L4vv/N+H9Zlq7ruq4bx/H//d//7Xa77nVoLb9B9k+qLEt1wF8Nfh73ASxUnufyAp6Pua6bJMnj0UC9V5bTo2EYavmPXQeyf1JywL/r/BL8AJZOXcP0vc1mcz6f1dc/Ho9P/+R//dd/6fpPXgGyf1LyW/vf//3fBD+AFfj+if+R53m9e0qLopCj/dL//M//6PqvXjqyf1KPX3GCH8CidUOYvu+/05Q9rv6T/+h8Pqsjo13zmKbp+XxWbwnK8/zf//3f5Z/Z7/c0oR8g+ydF8ANYn19t3hNCqCf1qv+obdskSX4aDNhut0EQZFn2v//7v//xH/8h//5//ud/DnuFoAnI/un0ZsUIfgDG6mbxn17Q1zsY4H1slXof2T+d3nDWr77QT8e+AGCt6rouyzJN0yAI9vv9m62lOomAF8j+6di2/Vn2P9put0mSMGwAwBx1XWdZ5vu+egpqz9OBBDwi+6fz006Vb3oADAMAMJlsD3UXsjB8Xgvw/tgX010AjCLHU7ng51eWl/1lWXqel2WZ7kJ0yvP8p1Gv1Ux3tW2bpqnnefRmAPxEvTCQC37et7zsl+dIGN7La5pG3SYrrWO6qygKtXOjuxwAM6UeGLCaJ58JLK9V7V0LLce64zj+5oJIzIq6J8L3fd3lAJgvIQTPCb+1vE+qdyzUYycgiqLL5aK7THyormu5psG2bQb8AfwV2f9bi/ykesdC0Q9Yh6qq4jhWd0LGcay7KAALQPb/1ko+qafXPEibzeZ0OumuET/Ksqx3HYht2yzbAfDa493BuitajLV9Ut2z49N7pVzXNXx3wDypdxl39vt97wovAOh5bDrI/vet+ZN62g8wfHfA3Kj3dmw2G+ZoANOUZTnULcDr2OU0jTVnf+dxcQADAHNwu93Uc4q42Qgw08cXndB0fGP92d953B3AAIAu3aE96vZ9fr2Asb4J/iAIaDo+Y0r2358NAFRVpbsogzyuyrFY0wcY7/GSM4ZmJ2BQ9neEEPJmaA6NmUbbtk9PZGJNHwB10Y+KodlRGZf99/u9qir59dJdy/plWfZ49QB3DgGQftqfRfyPx9DwI/un0duEw7w+gNd6a7OiKOKw9jEYGn5k/9h64/w86ANLcTwefzoiZZpfcS/+WRU0BkPDj+wfD8v4gYVSb9N4arKL8oQQvu8/dj5YAzgUQ8OP7B/J4+w+wQ+MbcDjcV6b+PCcoigedwGwCGAQhoYf2T+G3uw+4/ww0O12y/M8DMNpwngMsxpjPx6PjxVyafv3DA0/+R3SXcgaTPbMAWBss915+3g+26z6KItjaPjJb4/uQtaA4AfmYPWn2T+9vZ0pgM8YGn7ye6O7kDV4OigHmMm27cPhcDwer9er7p/mavUubeeE1g+YGH55nssvje5aVkLexhHHse5aAKwfJ7R+ybjw661H013OSsi1uJNtAQJgOPWEVh79f2vN4ffTOZHS6qfHRvXmEj/XdaMoulwuuusFsDbyDAAe/X9r2dk/3gpz9qf91W8/+c1mw7YcAAPicpaPLfvzGnWFOcPXr322xM+2bXoAAIYi2xbdhSzMsj+vUVeYMyMwiKczL/QAAAyC7P8Mnxcm0tuWY3E0B4Cvkf2f4fPCpB57ABzNAeBjZP9n+LygQa8HwBXdAD5D9n+Gzwt6cEU3gO+R/Z/h84I2j1d0M/4P4FfI/s/weUEzxv8BfIzs/wyfF/Rj/B/AZ8j+z/B5YRYY/wfwAbL/M3xemJHe+D9P/wBeI/s/w+eFeVHH/23bFkLorgjAfJH9n+HzwuwIIYIgsCwrDEPdtQCYNbL/M3xemClW+wP4K7L/M3xeAIAP9S5Sd103SZIpp+rI/s/weQEAPvT0IvXtdnu9XqcpgOz/DJ8XAOBDb16k7rru4Nd253mu9jwGfGUT8HkBAIaR57njOBN0BdI0VV8wCIIB/ytMQPYDAAbTNI16TOc7/YAwDIuieP8tHoOfzcC/ZVb2l2XpeV6e57oL+UNXVZZlugsBgFH0ju16ynGcIAiyLKvr+sVLZVkm/5XD4UDqf8as7N9sNpZl2batu5A/9FbJDj4rBgCz8k5X4K8I/m8Ykf3ycV9+aXRX9Ic4jnvfadu2oyi6XC66SwOAcVVVFcfx0/0CrxH835hXCo5EPu7PM/uFEGEYPv1ybzabiTfLAoAWVVWdTiff999ZLRhFke56l21eKTiGpmkevze6i/rR06GwKTfLAgBWb74p+L22bdM0lUNJaqbqLu0vng6CxXHctq3u0gAAizf3FPxYlmW9gaOiKORfL2V5XW+z7GazmdsmBQDA4qwz+3u7Py3LOhwOd+X0x0e2bc+zB/C4WXa/37/eAwMAwAtry/7eKY+u66oPyi+yX/YA5vlgXRRFt2JRiqKIHgAA4APryf62bXub5R53f8p/pP7Nx+V1VVVNW/tbhBBJkvQ6K/v9Ps9zNgIAAN63huzv1vT1ZvefnvL4NPs7RVFst9vun/q+P0nhn6jr2vO8Xg/AcRyGAQAAb1p89j+u6Xtx2NOL7L/f71VVyT+QpumIRX/ter2GYaieWMAwAADgTcvO/t6avt7s/qPX2X+/39UzdmYe//f7vW3bLMvkcAXDAACAdyw4+9UbHf6a+p2/Zr8QQl1UP//47zAMAAB434KzX67nf/9Gh79m/32x8X9/OQyQJAnnAgEAOgvO/m7A3/f9959r38n++0P8z3PZ/wtPhwE2m835fNZdGgBAvwVn//1+/+1RPG9m//1+F0LI5fRzXvb/wtNhAM/zWAcAAIZbdvb/1vvZf/9z2f+ir9M9n8+9c4GYAgAAk5H9r8hl/67rLnrFXNu2vXOBmAIAAGOR/a80TSOfmFdwXfTjuUBMAQCAgcj+vzifz+sY+ZcepwCCIMjznFkAADAE2f93vu+vY+RfepwC6Oz3+9PpxEgAAKwb2f93TdPIY4NXMPIvPb0aQPZy4jguy1J3jQCA4ZH9b8nzXP67x+NxjNp0qev6dDrt9/unnQDHccIwXMdkBwCgQ/a/S478W5b123MFFqFt2zzPgyDo3Y0kRwLSNL3dbrrLBAB8i+x/lxBCPhxnWTZ4bbNSlmUcx/LUZJXnedwRAACLRvb/ghz59zxv2MJmq67rKIp6+wIsy7JtOwzD6/Wqu0AAwK+R/b/Qtq08JH9Bd/wM4nw+B0HwdC7geDwyFwAAC0L2/04URfJFVrbo7x1N05xOp8erAi3LOhwOzAUAwCKQ/b+jXvFn27axUVdVVRRFj6sCHceJ43iVayEBYDXI/l8TQnSj32EYDlXYQgkhzuezet+x7BXRAwCA2SL7P0SwqZqmOR6PvbkAegAAME9kP4ZUFMVut6MHAABzZlYKkv3ToAcAAHNmVgqS/VOiBwAA82RWCpL906MHAABzY1YKkv260AMAgPkwKwXJfr2e9gCiKOJYQACYklkpSPbPwWMPwLKsw+FQlqXu0gDACGalINk/H097ANvtloOBAWBsZqUg2T83l8vl8Yogx3GSJGEpAACMxKwUJPvn6Xa7xXH8eDtAEARcEwwAgzMrBcn+ORNCZFnmum6vB7Df7/M8110dAKyHWSlI9i9CURSP9wNtNpvj8chEAAB8z6wUJPsXpK7rMAxt21Z7ALZth2FY17Xu6gBgwcxKQbJ/cdq2PR6Pm82mNwzged75fNZdHQAsklkpSPYv1/l83u/3vR6A67rH47FtW93VAcCSmJWCZP/SXa/XMAx7PQAmAgDgV8xKQbJ/HZqmSZKEiQAA+IxZKUj2r4kQIs/z7XbLRAAA/IpZKUj2r9LTwwG7ewLpAQDAI7NSkOxfsaeHAzqOczqddJcGAPNiVgqS/avXHQ7YmwjYbrdcEggAklkpSPab43w+9xYD+r5/u9101wUA+pmVgmS/UYQQaZqqswC2bSdJwiIAAIYzKwXJfgM1TRNFkToAsNlssizTXRcAaGNWCpL9xqqqyvM8tQew2+0ul4vuugBAA7NSkOw3XFEUvTuCWQQAwEBmpSDZDyHE8XjsLQLwfT9N08vlwlIAACYwKwXlhbBCCN21QKfHRQCS67p0BQCsm1nZv9vtuva9qirdtUC/uq4Ph8PTHgBdAQArZlb2+77fNehFUeiuBXNRVVWe53Ec9xYD/tQVCMOwKAqGjgAsl1nZH8dx14Jzzit+8mZXwLbtIAjyPGcwAMDimJX9p9Opa7jjONZdC5bhna6A53lZlrFfAMBSmJX9RVF0jbXv+7prwSJVVZWmqVw40rPb7dI0retad5kA8IpZ2V9VlWyjddeCZbvdblmW/TQY4LpuHMecHQRgnszKfiFE1zQ7jqO7FqxE27Z5ngdBIHeQqjabTRAEx+ORfgCA+TAr++/3u7zbTXchWBshRFEUYRj27g9U7ff7KIryPGeXKQCNjItAeaSr7kKwZpfLJY7j3vnBPbZte56XpmlRFE3T6C4ZgEGMi0CyH1Oq6/p8PsdxvN/vX/QDutmBKIpYJwhgAsZFINkPjS6Xy/F4DILgxZDAfr/P85yzgwCMx7gIJPsxE03TFEWRpqnneY/rBB3HYRgAwEiMi0CyH/N0vV7DMHzsBDAMAGBwxkWgvLxVdyHAE23bZlm23W4ZBgAwHuMiUDamugsBXmEYAMB4jItAsh8L8mIYwPf97sgg+gEAfsu4CCT7sUQ/DQN0drtdFEVZlnFkEIB3GBeBsvXk1jUszk/DAKruyKAkSTgyCMBPjMt+eflKnue6awE+VFVVlmVRFP10o6DUHRl0vV51lwxgRozL/jRNuzYxDEPdtQADEEJ0Rwb5vv/iKgHXdZMkYacAgLuB2X+5XGRTqLsWYHjdkUFJkjw9MsiyrO12ezqdmPMCTGZc9strfC2W+8EAVVVFUfR0PMDzvDzP27bVXSOAqZmYf2Q/DNTdL/x0JCAIgvP5zF5BwBwm5h/ZD2MJIfI8933/sQegnhmgu0wA4zIx/8h+oGmaLMtebBPozgzI85wzA4D1MTH/yH5Aut1uaZq+uFPY4swAYHVMzD855cnYJiDVdZ3neRRF+/3+RT/AsqzNZpMkCYsEgeUyMfuDIOiaMNd1Wd8EPCXPDPhpSGCz2ZzPZ91lAviEidnfNI28yTeKIt3lAHP34swAz/M4LwhYHBOz/36/53kuJzIZugR+5Xw+9w4MCIKAo1FZsfkAAAhpSURBVAKABTE0++/3u1zhzFHnwG+1bZskyeNEwH6/P51OjAQAM2du9kdR1LVWWZbprgVYpLqu5eVYPa7rxnFclqXuGgE8YW72n06nrpGK41h3LcCC1XV9Op1+2h3gOE4cx+wMBGbF3Owvy7Jrmw6Hg+5agDVo2zbP8yAI5FpaybZtegDAfJib/U3TyK1KumsB1qYsyziOe/sD6QEAM2Fu9t+VQ350FwKsVlEUvZOD6QEA2hkde7Ix0l0IsHL0AIBZMTr2yH5gSk97AFEUcbo2MDGjY4/sB6b32APolt3QCQAmY3Tskf2ALk97ALPtBJRl6XkeZ4FgNYyOPbIf0KuqqsftADPsBMgK0zTVXQswAKNjj+wHZuJ1JyBNU71XbsZxLOtxXZcBACyd0bFH9gNz81MnQO+VwUKIw+Gg1nM8HnUVA3zP6NiT+/tvt5vuWgD84WknYL/f67p8SwgRhqGsxLZtLWUAgzA6++U1JHme664FwHNlWW63W7UHEASBroMBhBDymaGqKi01AN8zOvvTNO1+w2EY6q4FwCun00m9JsC27SRJtPQAgiDoavB9f/p3BwZhdPZfLhe5eEd3LQD+om1bdc2dpelwwKqqZAEs+8dCGZ396vAdU/7AItR13Vt2N30PQJ34J/6xREZn/50pf2CZLpeL/PFO3wPoLftn4h+LY3r2M+UPLJfGHoAQQr41E/9YHNOznyl/YOme9gAmOBNQnfjn0R/LYnr2CyHkr1d3LQA+99gDsCxrs9kEQZBlWV3XY7yp7/s8+mOJCDxO9wPW42kPYLx+AGv+sVAEHtkPrM2L2wFkP2CoQ3nVNf8c9IulIPDIfmC16rrOsiwIgs1m89gD8H2/bdsv30Jd889Bv1gKAo/sB4xQVdXpdPJ9Xz0fcLvdfj8FoJ4Uwsg/FoHAI/sB48jNvZZlOY5TFMWXL6geOMiaf8wfgffPbX56LwgHMKWiKNQBgB7XdX91TgDb/bEsZP99t9vRWwcMVNd174bAnl+dFMR2fywI2f/PDt3vx/0ALEvbtrIFeNEDSJLknXFBtvtjKcj+fybqTqeT7loAzEJRFHJEsLPdbq/X6+t/i0d/LAXZfz+dTt1vNY5j3bUAmJHHHsBfpwB49McikP33oij4rQL4SZ7n6qpA27ZfnOGjPvr/9ZW7UwgnvoAYuJP9d+W3utvtdNcCYI6aplEv7bUsy3XdLMue/uH3s19uDXjdnwAGR/b/c52P4zi6awEwX5fLZb/f91YCuq6b57n6x97PfvWYAYsjgTEhsv9+v9/leZ+32013LQDGVZbli6P+P/Bv//Zv6n3B72f//c8lBRwJjMmQ/fe7sjyH8ziB1Rs2+F94sx5uEsf0+Krd78pyP9d1ddcCYFzH43FW2X/nZHFMjq/a/X6/CyHksL86dgcAr/10X3AURe+/CNmPifFV+xd5wk8YhrprAWAWsh8T46v2L3Knn23bXOoDYEpkPybGV+0fcrVtb8cOAIyK7MfE+Kr9Qx7u63me7loAGITsx8T4qv2jaRp+gQCmR8uDifFV+wO/QADTe7PlyfO8t6Hg8VRB4B2E3B/IfgDTe93yPEa+itMA8QFC7g9kP4Dp9Vqetm3TNH3z/MFfHSQAdAi5P5D9AKbUxfw7Gd8JgoBNyPgeIfcHsh/AZLIscxyHyMf0CLk/2Lbd/dK40A/AqLIsexH2LOLDqMj+P3ie1/3w+NUBGJWczlfn9XUXBVPwVfuDnHjjVH8Ao+paG9/3ucMX0+Or9ofL5SJ74rprAbByTdN0f0H2Y2J81f5ABxzA9Gh2MDG+an38CAFMjGYHE+Or1sePEMDEaHYwMb5qffwIAUyMZgcT46vWx48QwMRodjAxvmp9/AgBTEyeKlZVle5aYAQSro/sBzCxIAi6Zsf3fd21wAgkXB/ZD2BiVVXJlidNU93lYP1IuD6yH8D0wjAk/jEZEq6PiTcA0xNCHA4H4h/TIPv7mHgDoEUv/nn8wHjI/j514k13LQDMIoSQt4ny+IHxEG9PkP0AdGHdHyZAvD1B9gPQiHV/GBvx9gTZD0Aj1v1hbMTbE2Q/AL168X88HnVXhFUh3p4g+wFop8a/bdu6y8GqEG9PyC3+bdvqrgWAuYQQPIpgDHyfntjv992Pbbfb5XmuuxwA5iL7MQa+T0/EcSx/bwy1AdCIk0YxBrL/iTzPLYXucgCYi5NGMQaC7Qn1bA2yH4BGHPWDMRBsz5H9AN5UlqXneVmWjfT66lE/bPbDIAi258h+AG9yXXfU53I2+2FwBNtzavbfbjfd5QCYL3V18Hjxz9MIBsTX6Dk1+9nmB+CFaY7gJfsxIL5Gz6nZH4ah7nIAzFov/l3XTZJECDHgW5D9GBBfo+fkntruZ6y7HABz14t/y7K22+31ev3+ldu2VacVvn9BgK/RcxzvA+C3hBDqmvwxBEGg+78Sa0D2P6f+hqMo0l0OgCXJ89xxnMGD/3A4DDuPAGOR/QAwvKZpelMA33Bdl0XHGBDZDwCAWcj+iXQnf9FzBwBoR/ZPZLPZWCwbBADMANk/ETlvp7sQAIDpiKKJkP0AgJkgiiZC9gMAZoIomgjZDwCYCaJoIjL7WeoPANCL7J+IvCCApf4AAL3I/okcj0eG/QEAc0AOTYfsBwDMATk0HbIfADAH5NB0yH4AwByQQ9Mh+wEAc0AOTYfsBwDMATk0HbIfADAH5NB0yH4AwByQQ9Mh+wEAc0AOTUce7Xc8HnXXAgAwF9k/nTiOOdYXAKAd2T8dIQTD/gAA7QihSZH9AADtCKFJkf0AAO0IoUnJ5X66CwEAmIsQmlR3k28URboLAQCYi+wHAMAsZD8AAGYh+wEAMAvZDwCAWch+AADMQvYDAGCW/wdLjTSEG/FgUgAAAABJRU5ErkJggg==" alt="" />

 #include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
#define pb(a) push_back(a)
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt,cnt;
int g[MAXN][MAXN];
int main()
{
int i,j,k;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
while(scanf("%d%d",&n,&m)!=EOF)
{
int a,b;
cl(g);
for(i=;i<m;i++)
{
scanf("%d%d",&a,&b);
g[a][b]=;
}
for(k=;k<=n;k++)
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(g[i][k]==&&g[k][j]==) g[i][j]=;
int tot=;
for(i=;i<=n;i++)
{
bool flag=;
for(j=;j<=n;j++)
{
if(i==j) continue;
if(g[i][j]==&&g[j][i]==)
{
flag=;
break;
}
}
if(flag)
{
tot++;
}
}
printf("%d\n",tot);
}
}
上一篇:观察者模式之一:java实现观察者模式


下一篇:从.net到java,记录下这三个月的工作