POJ 3905 Perfect Election(简单2
POJ 3905 Perfect Election(简单2-SAT) http://poj.org/problem?id=3905 题意: 这里有1到N个人正在进行议员选举,每个人有2种结果,选上(0),未选上(1).现在的问题是,有M个选民的议员,结果必须符合这M条意愿,问你是否存在这种选举结果. 分析: 由于每条意愿都是
POJ 3905 Perfect Election(简单2-SAT)
http://poj.org/problem?id=3905
题意:
这里有1到N个人正在进行议员选举,每个人有2种结果,选上(0),未选上(1).现在的问题是,有M个选民的议员,结果必须符合这M条意愿,问你是否存在这种选举结果.
分析:
由于每条意愿都是或的关系.则直接用2-sat添加对应边即可.
简单2-SAT问题,注意把候选人序号改成0到N-1即可.
AC代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int maxn = 1000+10; struct TwoSAT { int n; vector<int> G[maxn*2]; int S[maxn*2],c; bool mark[maxn*2]; bool dfs(int x) { if(mark[x^1]) return false; if(mark[x]) return true; mark[x]= true; S[c++]=x; for(int i=0;i<g if return false true void init n this->n=n; for(int i=0;i<n g memset void add_clause x xval y yval bool solve for i="0;i<2*n;i+=2)" if c="0;" while>0) mark[S[--c]]=false; if(!dfs(i+1)) return false; } } return true; } }TS; int main() { int n,m; while(scanf("%d%d",&n,&m)==2) { TS.init(n); for(int i=0;i<m int a scanf ts.add_clause printf return><br> <br> </m></n></g></int></vector></algorithm></cstring></cstdio>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Nombor siri cakera keras ialah pengecam penting cakera keras dan biasanya digunakan untuk mengenal pasti cakera keras secara unik dan mengenal pasti perkakasan. Dalam sesetengah kes, kami mungkin perlu menanyakan nombor siri cakera keras, seperti semasa memasang sistem pengendalian, mencari pemacu peranti yang betul atau melakukan pembaikan cakera keras. Artikel ini akan memperkenalkan beberapa kaedah mudah untuk membantu anda menyemak nombor siri cakera keras. Kaedah 1: Gunakan Windows Command Prompt untuk membuka command prompt. Dalam sistem Windows, tekan kekunci Win+R, masukkan "cmd" dan tekan kekunci Enter untuk membuka arahan

Bagaimana untuk menulis penjana laporan prestasi pelajar yang mudah menggunakan Java? Penjana Laporan Prestasi Pelajar ialah alat yang membantu guru atau pendidik menjana laporan prestasi pelajar dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Java untuk menulis penjana laporan prestasi pelajar yang mudah. Pertama, kita perlu menentukan objek pelajar dan objek gred pelajar. Objek pelajar mengandungi maklumat asas seperti nama pelajar dan nombor pelajar, manakala objek skor pelajar mengandungi maklumat seperti skor mata pelajaran pelajar dan gred purata. Berikut ialah definisi objek pelajar mudah: awam

Permulaan Pantas: Melaksanakan Sistem Pengurusan Perpustakaan Mudah Menggunakan Fungsi Bahasa Go Pengenalan: Dengan pembangunan berterusan bidang sains komputer, keperluan aplikasi perisian menjadi semakin pelbagai. Sebagai alat pengurusan biasa, sistem pengurusan perpustakaan juga telah menjadi salah satu sistem yang diperlukan untuk banyak perpustakaan, sekolah dan perusahaan. Dalam artikel ini, kami akan menggunakan fungsi bahasa Go untuk melaksanakan sistem pengurusan perpustakaan yang mudah. Melalui contoh ini, pembaca boleh mempelajari penggunaan asas fungsi dalam bahasa Go dan cara membina program praktikal. 1. Idea reka bentuk: Mari dahulu

Bagaimana untuk menulis sistem tempahan dalam talian yang mudah melalui PHP Dengan populariti Internet dan mengejar kemudahan pengguna, sistem tempahan dalam talian menjadi semakin popular. Sama ada restoran, hospital, salun kecantikan atau industri perkhidmatan lain, sistem tempahan dalam talian yang mudah boleh meningkatkan kecekapan dan memberikan pengguna pengalaman perkhidmatan yang lebih baik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis sistem tempahan dalam talian yang mudah dan memberikan contoh kod khusus. Cipta pangkalan data dan jadual Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat tempahan. Dalam MyS

Bagaimana untuk menulis sistem cadangan muzik mudah dalam C++? Pengenalan: Sistem pengesyoran muzik ialah hotspot penyelidikan dalam teknologi maklumat moden Ia boleh mengesyorkan lagu kepada pengguna berdasarkan pilihan muzik dan tabiat tingkah laku mereka. Artikel ini akan memperkenalkan cara menggunakan C++ untuk menulis sistem cadangan muzik yang ringkas. 1. Kumpul data pengguna Pertama, kita perlu mengumpul data keutamaan muzik pengguna. Keutamaan pengguna untuk pelbagai jenis muzik boleh diperolehi melalui tinjauan dalam talian, soal selidik, dsb. Simpan data dalam fail teks atau pangkalan data

Pengenalan kepada cara menggunakan PHP untuk membangunkan fungsi pengurusan fail mudah: Fungsi pengurusan fail merupakan bahagian penting dalam banyak aplikasi web. Ia membolehkan pengguna memuat naik, memuat turun, memadam dan memaparkan fail, memberikan pengguna cara yang mudah untuk mengurus fail. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pengurusan fail mudah dan menyediakan contoh kod khusus. 1. Buat projek Pertama, kita perlu mencipta projek PHP asas. Cipta fail berikut dalam direktori projek: index.php: halaman utama, digunakan untuk memaparkan jadual muat naik

Bagaimana untuk menulis permainan penyapu ranjau mudah dalam C++? Penyapu ranjau ialah permainan teka-teki klasik yang memerlukan pemain mendedahkan semua blok mengikut susun atur medan periuk api yang diketahui tanpa memijak lombong. Dalam artikel ini, kami akan memperkenalkan cara menulis permainan penyapu ranjau mudah menggunakan C++. Pertama, kita perlu menentukan tatasusunan dua dimensi untuk mewakili peta permainan Penyapu Ranjau. Setiap elemen dalam tatasusunan boleh menjadi struktur yang digunakan untuk menyimpan status blok, seperti sama ada ia didedahkan, sama ada terdapat lombong, dsb. Di samping itu, kita juga perlu menentukan

Panduan Reka Bentuk Jadual MySQL: Mencipta Jadual Kehadiran Pekerja yang Mudah Dalam pengurusan perusahaan, pengurusan kehadiran pekerja adalah tugas yang penting. Untuk merekod dan mengira kehadiran pekerja dengan tepat, kami boleh menggunakan pangkalan data MySQL untuk mencipta helaian kehadiran pekerja yang mudah. Artikel ini akan membimbing anda cara mereka bentuk dan mencipta jadual ini serta memberikan contoh kod yang sepadan. Pertama, kita perlu mengenal pasti medan yang diperlukan untuk helaian kehadiran pekerja. Secara umumnya, helaian kehadiran pekerja perlu mengandungi sekurang-kurangnya medan berikut: ID pekerja, tarikh, masa bekerja, masa luar tugas
