Skip to content

Commit 5db31a6

Browse files
committed
update 0130~0205
1 parent dc80588 commit 5db31a6

4 files changed

Lines changed: 270 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
5+
6+
public class P15900 {
7+
public static ArrayList<ArrayList<Integer>> graph=new ArrayList<>();
8+
public static int n;
9+
public static boolean visited[];
10+
public static int dist[];
11+
public static void main(String[] args) throws IOException {
12+
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
13+
StringTokenizer st=new StringTokenizer(br.readLine()," ");
14+
15+
n=Integer.parseInt(st.nextToken());
16+
17+
visited=new boolean[n+1];
18+
dist=new int[n+1];
19+
20+
for(int i=0;i<=n;i++){
21+
graph.add(new ArrayList<>());
22+
}
23+
24+
for(int i=0;i<n-1;i++){
25+
st=new StringTokenizer(br.readLine()," ");
26+
int u=Integer.parseInt(st.nextToken());
27+
int v=Integer.parseInt(st.nextToken());
28+
graph.get(u).add(v);
29+
graph.get(v).add(u);
30+
}
31+
32+
Queue<Integer> queue=new LinkedList<>();
33+
visited[1]=true;
34+
dist[1]=0;
35+
queue.offer(1);
36+
37+
int sum=0;
38+
39+
while(!queue.isEmpty()){
40+
int now=queue.poll();
41+
boolean isLeaf=true;
42+
for(int i=0;i<graph.get(now).size();i++){
43+
int next=graph.get(now).get(i);
44+
if(!visited[next]){
45+
visited[next]=true;
46+
dist[next]=dist[now]+1;
47+
queue.offer(next);
48+
isLeaf=false;
49+
}
50+
}
51+
if(isLeaf){
52+
sum+=dist[now];
53+
}
54+
}
55+
56+
if(sum%2==1){
57+
System.out.println("Yes");
58+
}
59+
else{
60+
System.out.println("No");
61+
}
62+
}
63+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
5+
6+
public class P16437 {
7+
public static ArrayList<ArrayList<Integer>> graph=new ArrayList<>();
8+
public static int n;
9+
public static int wolf[];
10+
public static int sheep[];
11+
12+
public static long dfs(int now){
13+
//leaf node
14+
if(graph.get(now).size()==0){
15+
return sheep[now];
16+
}
17+
18+
int nowSheep=sheep[now];
19+
long childSheep=0;
20+
for(int i=0;i<graph.get(now).size();i++){
21+
int next=graph.get(now).get(i);
22+
childSheep+=dfs(next);
23+
}
24+
25+
//올라오다 늑대한테 먹히고 남은 양의수
26+
long aliveSheep=nowSheep+childSheep-wolf[now];
27+
if(aliveSheep<0) aliveSheep=0;
28+
return aliveSheep;
29+
}
30+
31+
public static void main(String[] args) throws IOException {
32+
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
33+
StringTokenizer st=new StringTokenizer(br.readLine()," ");
34+
35+
n=Integer.parseInt(st.nextToken());
36+
wolf=new int[n+1];
37+
sheep=new int[n+1];
38+
39+
for(int i=0;i<=n;i++) graph.add(new ArrayList<>());
40+
41+
for(int i=2;i<=n;i++){
42+
st=new StringTokenizer(br.readLine()," ");
43+
44+
String op=st.nextToken();
45+
int w=Integer.parseInt(st.nextToken());
46+
int parent= Integer.parseInt(st.nextToken());
47+
48+
if(op.equals("S")){
49+
sheep[i]=w;
50+
}
51+
else{
52+
wolf[i]=w;
53+
}
54+
graph.get(parent).add(i);
55+
}
56+
57+
System.out.println(dfs(1));
58+
}
59+
}

‎hyeon-uk/2022/0130~0205/P2887.java‎

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
class Node{
5+
int number;
6+
int x,y,z;
7+
public Node(int number,int x,int y,int z){
8+
this.number=number;
9+
this.x=x;
10+
this.y=y;
11+
this.z=z;
12+
}
13+
}
14+
15+
class CNode{
16+
int dist;
17+
int u,v;
18+
public CNode(int dist,int u,int v){
19+
this.dist=dist;
20+
this.u=u;
21+
this.v=v;
22+
}
23+
}
24+
25+
public class P2887{
26+
public static List<Node> xList=new ArrayList<>();
27+
public static List<Node> yList=new ArrayList<>();
28+
public static List<Node> zList=new ArrayList<>();
29+
public static List<CNode> totalList=new ArrayList<>();
30+
31+
public static int[] parent;
32+
public static int find(int p){
33+
if(parent[p]==p){
34+
return p;
35+
}
36+
else{
37+
return find(parent[p]);
38+
}
39+
}
40+
41+
public static void unionParent(int a,int b){
42+
a=find(a);
43+
b=find(b);
44+
45+
if(a<b){
46+
parent[b]=a;
47+
}
48+
else{
49+
parent[a]=b;
50+
}
51+
}
52+
public static void main(String[] args) throws IOException {
53+
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
54+
StringTokenizer st=new StringTokenizer(br.readLine()," ");
55+
56+
int n=Integer.parseInt(st.nextToken());
57+
58+
for(int i=1;i<=n;i++){
59+
st=new StringTokenizer(br.readLine()," ");
60+
int x=Integer.parseInt(st.nextToken());
61+
int y=Integer.parseInt(st.nextToken());
62+
int z=Integer.parseInt(st.nextToken());
63+
64+
Node node=new Node(i,x,y,z);
65+
xList.add(node);
66+
yList.add(node);
67+
zList.add(node);
68+
}
69+
70+
xList.sort(new Comparator<Node>() {
71+
@Override
72+
public int compare(Node o1, Node o2) {
73+
return o1.x-o2.x;
74+
}
75+
});
76+
77+
for(int i=0;i<n-1;i++){
78+
int dist=xList.get(i+1).x-xList.get(i).x;
79+
CNode node=new CNode(dist,xList.get(i).number,xList.get(i+1).number);
80+
totalList.add(node);
81+
}
82+
83+
yList.sort(new Comparator<Node>() {
84+
@Override
85+
public int compare(Node o1, Node o2) {
86+
return o1.y-o2.y;
87+
}
88+
});
89+
90+
for(int i=0;i<n-1;i++){
91+
int dist=yList.get(i+1).y-yList.get(i).y;
92+
CNode node=new CNode(dist,yList.get(i).number,yList.get(i+1).number);
93+
totalList.add(node);
94+
}
95+
96+
zList.sort(new Comparator<Node>() {
97+
@Override
98+
public int compare(Node o1, Node o2) {
99+
return o1.z-o2.z;
100+
}
101+
});
102+
103+
for(int i=0;i<n-1;i++){
104+
int dist=zList.get(i+1).z-zList.get(i).z;
105+
CNode node=new CNode(dist,zList.get(i).number,zList.get(i+1).number);
106+
totalList.add(node);
107+
}
108+
109+
totalList.sort(new Comparator<CNode>() {
110+
@Override
111+
public int compare(CNode o1, CNode o2) {
112+
return o1.dist-o2.dist;
113+
}
114+
});
115+
116+
long sum=0;
117+
parent=new int[n+1];
118+
for(int i=1;i<=n;i++) parent[i]=i;
119+
for(int i=0;i<totalList.size();i++){
120+
CNode e=totalList.get(i);
121+
int u=e.u;
122+
int v=e.v;
123+
int dist=e.dist;
124+
125+
if(find(u)==find(v)) continue;
126+
127+
unionParent(u,v);
128+
129+
sum+=dist;
130+
};
131+
System.out.println(sum);
132+
}
133+
}

‎hyeon-uk/2022/0130~0205/P4690.java‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class P4690 {
2+
public static void main(String[] args){
3+
for(int a=1;a<=100;a++){
4+
for(int b=2;b<a;b++){
5+
for(int c=b+1;c<a;c++){
6+
for(int d=c+1;d<a;d++){
7+
if(a*a*a==b*b*b+c*c*c+d*d*d){
8+
System.out.println(String.format("Cube = %d, Triple = (%d,%d,%d)",a,b,c,d));
9+
}
10+
}
11+
}
12+
}
13+
}
14+
}
15+
}

0 commit comments

Comments
 (0)