Skip to content

Commit 3ef83af

Browse files
committed
code
1 parent c82591c commit 3ef83af

File tree

6 files changed

+233
-3
lines changed

6 files changed

+233
-3
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#include <stdio.h>
2+
#include <bits/stdc++.h>
3+
using namespace std;
4+
typedef long long ll;
5+
6+
const int INF = 0x3f3f3f3f;
7+
const int MAXN = 1.5e7 + 10;
8+
int pri[MAXN], a[MAXN];
9+
10+
int gcd(int a, int b)
11+
{
12+
if (!b)
13+
return a;
14+
return gcd(b, a % b);
15+
}
16+
int main()
17+
{
18+
#ifdef LOCAL
19+
freopen("C:/input.txt", "r", stdin);
20+
#endif
21+
int n, g = 0;
22+
cin >> n;
23+
for (int i = 0; i < n; i++)
24+
{
25+
int t;
26+
scanf("%d", &t);
27+
a[t]++;
28+
if (!g)
29+
g = t;
30+
else
31+
g = gcd(g, t);
32+
}
33+
int ans = n;
34+
for (int i = g + 1; i < MAXN; i++)
35+
if (!pri[i])
36+
{
37+
int cnt = 0, j;
38+
for (j = i; j < MAXN; j += i)
39+
pri[j] = 1, cnt += a[j];
40+
ans = min(ans, n - cnt);
41+
}
42+
if (ans < n)
43+
cout << ans << endl;
44+
else
45+
cout << -1 << endl;
46+
47+
return 0;
48+
}
Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,48 @@
1-
num = [1,1,1,1]
2-
op = ['-','+','+']
3-
#TODO
1+
2+
ans = float('inf')
3+
4+
op = {'+': lambda x, y: x + y,
5+
'-': lambda x, y: x - y,
6+
'/': lambda x, y: x / y,
7+
'*': lambda x, y: x * y}
8+
9+
def rec_3(a, b):
10+
global ans
11+
temp=0
12+
temp = op[st[2]](a,b) if( st[2]=='+') else op['*'](a,b)
13+
ans=min(ans,temp)
14+
15+
def rec_2(a, b, c):
16+
17+
if( st[1]=='+'):
18+
rec_3(a+b,c)
19+
rec_3(a+c,b)
20+
rec_3(b+c,a)
21+
22+
else:
23+
rec_3(a*b,c)
24+
rec_3(a*c,b)
25+
rec_3(b*c,a)
26+
27+
def rec_1( a, b, c, d):
28+
if( st[0]=='+'):
29+
rec_2(a+b,c,d)
30+
rec_2(a+c,b,d)
31+
rec_2(a+d,b,c)
32+
rec_2(b+c,a,d)
33+
rec_2(b+d,a,c)
34+
rec_2(c+d,a,b)
35+
36+
else:
37+
rec_2(a*b,c,d)
38+
rec_2(a*c,b,d)
39+
rec_2(a*d,b,c)
40+
rec_2(b*c,a,d)
41+
rec_2(b*d,a,c)
42+
rec_2(c*d,a,b)
43+
44+
45+
nom = list(map(int,input().split()))
46+
st = list(map(str,input().split()))
47+
rec_1(nom[0],nom[1],nom[2],nom[3])
48+
print(ans)
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include<stdio.h>
2+
#include<iostream>
3+
#include<algorithm>
4+
#include<math.h>
5+
#include<string.h>
6+
#define LL long long
7+
using namespace std;
8+
long long int ans=1LL<<60;
9+
char str[4];
10+
void DFS_3(long long int a,long long int b)
11+
{
12+
long long int temp=0;
13+
if(str[2]=='+')
14+
temp=a+b;
15+
else
16+
temp=a*b;
17+
ans=min(ans,temp);
18+
}
19+
void DFS_2(long long int a,long long int b,long long int c)
20+
{
21+
if(str[1]=='+')
22+
{
23+
DFS_3(a+b,c);
24+
DFS_3(a+c,b);
25+
DFS_3(b+c,a);
26+
}
27+
else
28+
{
29+
DFS_3(a*b,c);
30+
DFS_3(a*c,b);
31+
DFS_3(b*c,a);
32+
}
33+
}
34+
void DFS_1(long long int a,long long int b,long long int c,long long int d)
35+
{
36+
if(str[0]=='+')
37+
{
38+
DFS_2(a+b,c,d);
39+
DFS_2(a+c,b,d);
40+
DFS_2(a+d,b,c);
41+
DFS_2(b+c,a,d);
42+
DFS_2(b+d,a,c);
43+
DFS_2(c+d,a,b);
44+
}
45+
else
46+
{
47+
DFS_2(a*b,c,d);
48+
DFS_2(a*c,b,d);
49+
DFS_2(a*d,b,c);
50+
DFS_2(b*c,a,d);
51+
DFS_2(b*d,a,c);
52+
DFS_2(c*d,a,b);
53+
}
54+
}
55+
int main()
56+
{
57+
long long int a,b,c,d;
58+
cin>>a>>b>>c>>d;
59+
cin>>str[0]>>str[1]>>str[2];
60+
DFS_1(a,b,c,d);
61+
cout<<ans<<endl;
62+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include<iostream>
2+
#include<cstdio>
3+
#include<cstdlib>
4+
#include<cstring>
5+
#include<algorithm>
6+
#include<list>
7+
#include<queue>
8+
#include<cmath>
9+
#include<vector>
10+
using namespace std;
11+
char oper[5];
12+
long long num[5],ans=1000000000000000ll;
13+
long long calu(long long a,long long b,char o){
14+
if(o=='+')return a+b;
15+
if(o=='*')return a*b;
16+
}
17+
int main()
18+
{
19+
scanf("%lld%lld%lld%lld",&num[0],&num[1],&num[2],&num[3]);
20+
getchar();
21+
scanf("%c %c %c",&oper[0],&oper[1],&oper[2]);
22+
int id[5];id[0]=0;id[1]=1;id[2]=2;id[3]=3;
23+
do
24+
{
25+
long long a=calu(num[id[0]],num[id[1]],oper[0]);
26+
long long b=calu(a,num[id[2]],oper[1]);
27+
long long temp=calu(b,num[id[3]],oper[2]);
28+
a=calu(num[id[0]],num[id[1]],oper[0]);
29+
b=calu(num[id[2]],num[id[3]],oper[1]);
30+
long long temp1=calu(a,b,oper[2]);
31+
ans=min(ans,min(temp,temp1));
32+
}while(next_permutation(id,id+4));
33+
printf("%lld\n",ans);
34+
return 0;
35+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def change(self, amount: int, coins: List[int]) -> int:
3+
dp = [1] + [0] * amount
4+
5+
for coin in coins:
6+
for i in range(coin, amount+1):
7+
dp[i] += dp[i-coin]
8+
9+
return dp[-1]

local/rec1.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
def recList(li, i):
2+
if i < len(li)-1:
3+
li[i], li[i+1] = li[i+1], li[i]
4+
recList(li, i+2)
5+
return li
6+
7+
#print(recList([1,2,3,4,5,6,7],0))
8+
9+
mt2d = [[0,0,1,0,0,0],
10+
[0,0,0,0,0,0],
11+
[0,0,0,0,0,0],
12+
[0,0,0,0,0,1],
13+
[0,0,1,0,0,1],
14+
[0,0,1,0,0,1]]
15+
16+
#TODO
17+
def rec2d(x, i, j):
18+
19+
if x[i][j] == 1 or i == len(mt2d)-1 or j == len(mt2d)-1:
20+
print('done')
21+
return
22+
print(x[i][j], i, j , end = ' -> ')
23+
rec2d(x, i, j+1)
24+
rec2d(x, i+1, j)
25+
26+
#rec2d(mt2d, 0, 0)
27+
28+
29+
30+
31+

0 commit comments

Comments
 (0)