We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- Java
- Data Structures
- Java BitSet
- Discussions
Java BitSet
Java BitSet
+ 0 comments Here is the solution.
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); BitSet b1 = new BitSet(n); BitSet b2 = new BitSet(n); for (int i = 0; i < m; i++) { String op = sc.next(); int p1 = sc.nextInt(); int p2 = sc.nextInt(); if (op.equals("AND")) { if (p1 == 1) {b1.and(b2);} else {b2.and(b1);} } else if (op.equals("OR")) { if (p1 == 1) {b1.or(b2);} else {b2.or(b1);} } else if (op.equals("FLIP")) { if (p1 == 1) { b1.flip(p2); } else { b2.flip(p2); } } else if (op.equals("SET")) { if (p1 == 1) { b1.set(p2); } else { b2.set(p2); } } else if (op.equals("XOR")) { if (p1 == 1) {b1.xor(b2);} else {b2.xor(b1);} } System.out.println(b1.cardinality() + " " + b2.cardinality()); } sc.close(); }
+ 0 comments My JAva Solution
import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ Scanner sc=new Scanner(System.in); int N=sc.nextInt(); int M=sc.nextInt(); BitSet bs1=new BitSet(N); BitSet bs2=new BitSet(N); for(int i=1;i<=M;i++) { String operation=sc.next(); int a=sc.nextInt(); int b=sc.nextInt(); if(operation.equals("AND")) { if(a==1) bs1.and(bs2);else bs2.and(bs1); } else if(operation.equals("OR")) { if(a==1) bs1.or(bs2);else bs2.or(bs1); } else if(operation.equals("XOR")) { if(a==1) bs1.xor(bs2); else bs2.xor(bs1); } else if(operation.equals("SET")) { if(a==1) bs1.set(b, true); else bs2.set(b,true); } else if(operation.equals("FLIP")) { if(a==1) bs1.flip(b); else bs2.flip(b); } System.out.println(bs1.cardinality()+" "+bs2.cardinality()); } } }
+ 0 comments import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ Scanner s=new Scanner(System.in); int a=s.nextInt(); int b=s.nextInt(); BitSet b1=new BitSet(a); BitSet b2=new BitSet(a); b1.set(0, a, false); b2.set(0, a, false); for(int i=0;i<b;i++){ String w=s.next(); int q=s.nextInt(); int y=s.nextInt(); if(w.equals("AND")) { if(q==1) { b1.and(b2); System.out.println(b1.cardinality()+" "+b2.cardinality()); }else{ b2.and(b1); System.out.println(b1.cardinality()+" "+b2.cardinality()); } } else if(w.equals("FLIP")) { if(q==1) { b1.flip(y); System.out.println(b1.cardinality()+" "+b2.cardinality()); }else{ b2.flip(y);; System.out.println(b1.cardinality()+" "+b2.cardinality()); } } else if(w.equals("SET")) { if(q==1) { b1.set(y);; System.out.println(b1.cardinality()+" "+b2.cardinality()); }else{ b2.set(y);; System.out.println(b1.cardinality()+" "+b2.cardinality()); } } else if(w.equals("OR")) { if(q==1) { b1.or(b2); System.out.println(b1.cardinality()+" "+b2.cardinality()); }else{ b2.or(b1); System.out.println(b1.cardinality()+" "+b2.cardinality()); } } else if(w.equals("XOR")) { if(q==1) { b1.xor(b2); System.out.println(b1.cardinality()+" "+b2.cardinality()); }else{ b2.xor(b1); System.out.println(b1.cardinality()+" "+b2.cardinality()); } } } } }
+ 0 comments Here is my Solution. Let me know if you need any discussion about this.
Scanner scanner = new Scanner(System.in); int bitSetLength = scanner.nextInt(); int totalOperations = scanner.nextInt(); scanner.nextLine(); BitSet bs1 = new BitSet(bitSetLength); BitSet bs2 = new BitSet(bitSetLength); for (int i = 0; i < totalOperations; i++) { String line = scanner.nextLine(); String operation = line.split(" ")[0]; int oprand1 = Integer.parseInt(line.split(" ")[1]) ; int oprand2 = Integer.parseInt(line.split(" ")[2]); // System.out.println(operation + " , " + oprand1 + " " + oprand2 ); // String operation = if (operation.equals("AND")) { if(oprand1 == 1) bs1.and(bs2); else bs2.and(bs1); } else if (operation.equals("OR")) { if(oprand1 == 1) bs1.or(bs2); else bs2.or(bs1); } else if (operation.equals("XOR")) { if(oprand1 == 1) bs1.xor(bs2); else bs2.xor(bs1); } else if (operation.equals("SET")) { if (oprand1 == 1) bs1.set(oprand2); else bs2.set(oprand2); } else if (operation.equals("FLIP")) { if (oprand1 == 1) bs1.flip(oprand2); else bs2.flip(oprand2); } System.out.println(bs1.cardinality() + " " + bs2.cardinality() ); }
+ 0 comments Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); BitSet bs1 = new BitSet(n); BitSet bs2 = new BitSet(n); ArrayList<BitSet> bits = new ArrayList<>(); bits.add(bs1); bits.add(bs2); for (int i = 0; i < m ; i++) { String operator = in.next(); int pos1 = in.nextInt(); int pos2 = in.nextInt(); if (operator.equals("AND")) { bits.get(pos1-1).and(bits.get(pos2-1)); } else if (operator.equals("OR")) { bits.get(pos1-1).or(bits.get(pos2-1)); } else if (operator.equals("XOR")) { bits.get(pos1-1).xor(bits.get(pos2-1)); } else if (operator.equals("FLIP")) { bits.get(pos1-1).flip(pos2); } else if (operator.equals("SET")) { bits.get(pos1-1).set(pos2); } int sum1 = bits.get(0).cardinality(); int sum2 = bits.get(1).cardinality(); System.out.println(sum1+" "+sum2); }
Load more conversations
Sort 140 Discussions, By:
Please Login in order to post a comment