关于2
在2-sat判定问题中我们经常会遇到这样一种情况,在一组相互矛盾的点Si和Si'中,必须选择Si而不能选择Si'。比如在poj 3678中有“每个数都是0或者是1,但是如果ab==1,则a和b都必须是1才可以满足”,在poj 3648有妻子必须坐在左侧,等等……。 拿poj 3678举例
在2-sat判定问题中我们经常会遇到这样一种情况,在一组相互矛盾的点Si和Si'中,必须选择Si而不能选择Si'。比如在poj 3678中有“每个数都是0或者是1,但是如果a&&b==1,则a和b都必须是1才可以满足”,在poj 3648有妻子必须坐在左侧,等等……。拿poj 3678举例,网上的解决方法大都是这样的:用Si表示第i个变量的值为1,用表Si'示第i个变量的值是0。如果第i个变量必须置为1,则加上一条边(Si'-->Si)。而且描述一般就是“如果选择~x,则x必须选,所以就产生了矛盾”,但是我们知道在2-sat中判定是否存在矛盾的方法是判断每一组Si和Si'是否在一个强联通分量中,这个矛盾又怎样通过求强连通分量来发现呢?也就是说,这种方法虽然对,但是关于为什么要这样的描述非常模糊。
我们知道2-sat在ACM中的应用主要有两种,一种是通过建图的情况判断是否存在可行的方案,另一种是得出有解后再反向构图,拓扑排序,染色得到一组可行解。
对于只要判断是否存在可行方案,如果Si和Si'之间互相不可达的话其实加上或者不加这条边其实是没有什么任何影响的,如下图:
如果在1和2之间必须要选择2的话,则连接一条从1指向2的边,该图的不受任何影响。

但是之所以要加上这边是为了防止下面这种情况的出现:
该图中包括第一组在内的所有组中的两个点都不属于同一个强连通分量,符合2-sat,但是观察点1和点2后会发现从2出发可以到达1,但是从1出发却无法抵达2点,从逻辑上来说就是如果2发生则1必须会发生(由于1和2是对立事件,也就是说选择2的话会产生矛盾)。但是由于1并不能推出2,所以第一组仍然符合2-sat。这个时候如果规定在第一组中必须选择2。也就是加一条1-->2的边后就会使得1和2处于同一个强连通分量中,被判定无解。
对于输出一组解的问题,我的想法是如果连一条从1-->2的弧之后。在反向加边后,由于1和2肯定属于不同的联通分量,所以肯定会存在一条从belon[2]-->belon[1]的边存在。从而使得在拓扑排序中belon[2]较belon[1]更优先被染成1,且保证belon[1]肯定被染成-1。
以上就是我对这个问题的理解,希望大家互相交流学习,本文博客地址:http://blog.csdn.net/ac_operation/article/details/6972358

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
