From f1d08c9c702e846e35a9d38075909449a5d7a4b4 Mon Sep 17 00:00:00 2001 From: zhangzc Date: Fri, 15 Oct 2021 18:25:38 +0800 Subject: [PATCH] update algorithm exercises --- .../7\346\256\265\347\240\201/solution.cpp" | 8 +- .../solution.cpp" | 64 +++++++------- .../solution.cpp" | 11 +-- .../solution.cpp" | 26 +++--- .../solution.cpp" | 49 ++++++----- .../solution.cpp" | 64 +++++++------- .../solution.java" | 2 +- .../solution.cpp" | 18 ++-- .../solution.cpp" | 61 +++++++------ .../solution.cpp" | 85 ++++++++++--------- .../solution.cpp" | 27 +++--- .../solution.cpp" | 36 +++++--- .../solution.cpp" | 40 +++++---- .../solution.cpp" | 36 ++++---- .../\346\212\275\347\255\276/solution.cpp" | 31 +++---- .../solution.cpp" | 61 +++++++------ .../solution.cpp" | 6 +- .../solution.cpp" | 46 ++++++---- .../solution.cpp" | 42 ++++----- .../solution.cpp" | 20 ++--- .../solution.cpp" | 24 +++--- .../solution.cpp" | 10 ++- .../solution.cpp" | 45 +++++----- .../desc.md" | 19 +++++ .../solution.cpp" | 33 +++++++ .../solution.java" | 30 +++++++ 26 files changed, 520 insertions(+), 374 deletions(-) diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.cpp" index fb8e7d4f9..c7ce2cfff 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.cpp" @@ -1,4 +1,4 @@ -#include +#include using namespace std; int use[10]; int ans, e[10][10], father[10]; @@ -15,8 +15,7 @@ void init() e[6][1] = e[6][5] = e[6][7] = 1; } - -int find(int a)//并查集 +int find(int a) //并查集 { if (father[a] == a) return a; @@ -24,9 +23,8 @@ int find(int a)//并查集 return father[a]; } - //深度遍历 -void dfs(int d) +void dfs(int d) { if (d > 7) { diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.cpp" index 75fb8a48a..ed88f172f 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.cpp" @@ -1,53 +1,53 @@ -#include +#include using namespace std; -int bei[10];//备用 -mapmp; +int bei[10]; //备用 +map mp; int main() { - int a[9]={1,2,3,4,5,6,7,8,9}; - int res=0; + int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + int res = 0; do { - for(int i=1;i<9;i++) + for (int i = 1; i < 9; i++) { - memset(bei,0,sizeof(bei));//分配空间 - long long int ans,left=0,right=0,t=0,x=0,y=0; - for(int j=0;j<=i;j++) + memset(bei, 0, sizeof(bei)); //分配空间 + long long int ans, left = 0, right = 0, t = 0, x = 0, y = 0; + for (int j = 0; j <= i; j++) { - left=left*10+a[j]; + left = left * 10 + a[j]; } - x=left; - x=x*10; - for(int k=i+1;k<9;k++) + x = left; + x = x * 10; + for (int k = i + 1; k < 9; k++) { - right=right*10+a[k]; - x=x*10+a[k]; + right = right * 10 + a[k]; + x = x * 10 + a[k]; } - y=right; - y=y*10; - for(int j=0;j<=i;j++) - y=y*10+a[j]; - - ans=left*right; - long long int ff=ans; - while(ans>0) + y = right; + y = y * 10; + for (int j = 0; j <= i; j++) + y = y * 10 + a[j]; + + ans = left * right; + long long int ff = ans; + while (ans > 0) { - int x=ans%10; - ans=ans/10; - if(bei[x]==0&&x!=0) + int x = ans % 10; + ans = ans / 10; + if (bei[x] == 0 && x != 0) { - bei[x]=1; + bei[x] = 1; t++; } } - if(t==9&&mp.count(x)==0&&mp.count(y)==0) + if (t == 9 && mp.count(x) == 0 && mp.count(y) == 0) { res++; - mp[x]=1; - mp[y]=1; + mp[x] = 1; + mp[y] = 1; } } - }while(next_permutation(a,a+9));//全排列 - cout< - + using namespace std; - -int main(){ + +int main() +{ set s; string str; cin >> str; - for(int i = 0; i < str.size(); i ++) - for(int j = i; j < str.size(); j ++) + for (int i = 0; i < str.size(); i++) + for (int j = i; j < str.size(); j++) s.insert(str.substr(i, j - i + 1)); cout << s.size(); return 0; diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.cpp" index 234c44de6..290e75285 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.cpp" @@ -1,20 +1,24 @@ -#include +#include using namespace std; -int main(){ - int count2=0,count5=0; +int main() +{ + int count2 = 0, count5 = 0; int num; - for(int i=0;i<100;i++){ - cin>>num; - while(num%5==0){ + for (int i = 0; i < 100; i++) + { + cin >> num; + while (num % 5 == 0) + { count5++; - num/=5; + num /= 5; } - while(num%2==0){ + while (num % 2 == 0) + { count2++; - num/=2; + num /= 2; } } - int ans=count2 +#include #include -#include +#include using namespace std; -int main(){ - int n,k; +int main() +{ + int n, k; long long ans; - cin>>n>>k; - vectornum; - for(int i=0;i> n >> k; + vector num; + for (int i = 0; i < n; i++) + { int temp; - cin>>temp; + cin >> temp; num.push_back(temp); } - sort(num.begin(),num.end()); - if(k%2!=0){ - ans=num.back(); - k=k-1; + sort(num.begin(), num.end()); + if (k % 2 != 0) + { + ans = num.back(); + k = k - 1; num.pop_back(); } else - ans=1; - while(k>0){ - if((num[0]*num[1])>num.at(num.size()-1)*num.at(num.size()-2)){ - ans=ans*num[0]*num[1]%1000000009; - num.erase(num.begin(),num.begin()+1); + ans = 1; + while (k > 0) + { + if ((num[0] * num[1]) > num.at(num.size() - 1) * num.at(num.size() - 2)) + { + ans = ans * num[0] * num[1] % 1000000009; + num.erase(num.begin(), num.begin() + 1); } - else{ - ans=ans*num.at(num.size()-1)*num.at(num.size()-2)%1000000009; + else + { + ans = ans * num.at(num.size() - 1) * num.at(num.size() - 2) % 1000000009; num.pop_back(); num.pop_back(); } - k-=2; + k -= 2; } - cout< -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #define MAX 1000000000 using namespace std; -int n,k,a[100010]; +int n, k, a[100010]; int b[4]; -int flag=0; -void dfs(int a[],int n,int s){ - if(flag==1) return; - if(s==4){ - int sum=b[1]+b[2]+b[3]; - if(sum%k==0){ - flag=1; - cout<>n>>k; -a[0]=MAX; -for(int i=1;i<=n;i++) - cin>>a[i]; - sort(a+1,a+n+1); - reverse(a+1,a+n+1); - dfs(a,n,1); +int main() +{ + cin >> n >> k; + a[0] = MAX; + for (int i = 1; i <= n; i++) + cin >> a[i]; + sort(a + 1, a + n + 1); + reverse(a + 1, a + n + 1); + dfs(a, n, 1); return 0; } diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.java" index eaf6fec23..76d920e29 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.java" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.java" @@ -1,7 +1,7 @@ import java.util.Scanner; public class Main { - public static void main(String[] args) { + public static void main(String[] args) { int mod=123456789; Scanner s = new Scanner(System.in); int n=s.nextInt();long result=0; diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.cpp" index ece6b2530..e2fd427be 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.cpp" @@ -1,5 +1,5 @@ -#include -#include +#include +#include int ans = 0; int nums[10]; @@ -8,24 +8,24 @@ bool visited[10]; void judge() { int i; - if (nums[0] + (double)nums[1]/nums[2] + (double)(nums[3] *100 + nums[4]* 10 + nums[5])/(nums[6]*100 + nums[7]*10 + nums[8]) == 10) + if (nums[0] + (double)nums[1] / nums[2] + (double)(nums[3] * 100 + nums[4] * 10 + nums[5]) / (nums[6] * 100 + nums[7] * 10 + nums[8]) == 10) { - printf("%d + %d/%d + %d%d%d/%d%d%d",nums[0],nums[1],nums[2],nums[3],nums[4],nums[5],nums[6],nums[7],nums[8]); + printf("%d + %d/%d + %d%d%d/%d%d%d", nums[0], nums[1], nums[2], nums[3], nums[4], nums[5], nums[6], nums[7], nums[8]); printf("\n"); ans++; } } void dfs(int index) { - if(index >= 9) + if (index >= 9) { judge(); - return ; + return; } int i; - for(i=1;i<10;i++) + for (i = 1; i < 10; i++) { - if(visited[i] == false) + if (visited[i] == false) { visited[i] = true; nums[index] = i; @@ -37,6 +37,6 @@ void dfs(int index) int main() { dfs(0); - printf("%d\n",ans); + printf("%d\n", ans); return 0; } diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\346\225\260\344\271\230\346\263\225/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\346\225\260\344\271\230\346\263\225/solution.cpp" index c451fc6ad..6192f7190 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\346\225\260\344\271\230\346\263\225/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\346\225\260\344\271\230\346\263\225/solution.cpp" @@ -1,36 +1,35 @@ -# include +#include void bigmul(int x, int y, int r[]) { - int base = 10000; - int x2 = x / base; - int x1 = x % base; - int y2 = y / base; - int y1 = y % base; - - int n1 = x1 * y1; - int n2 = x1 * y2; - int n3 = x2 * y1; - int n4 = x2 * y2; - - r[3] = n1 % base; - r[2] = n1 / base + n2 % base + n3 % base; - r[1] = n2 / base + n3 / base + n4 % base; // 填空 - r[0] = n4 / base; - - r[1] += r[2] / base; // 填空 - r[2] = r[2] % base; - r[0] += r[1] / base; - r[1] = r[1] % base; + int base = 10000; + int x2 = x / base; + int x1 = x % base; + int y2 = y / base; + int y1 = y % base; + + int n1 = x1 * y1; + int n2 = x1 * y2; + int n3 = x2 * y1; + int n4 = x2 * y2; + + r[3] = n1 % base; + r[2] = n1 / base + n2 % base + n3 % base; + r[1] = n2 / base + n3 / base + n4 % base; // 填空 + r[0] = n4 / base; + + r[1] += r[2] / base; // 填空 + r[2] = r[2] % base; + r[0] += r[1] / base; + r[1] = r[1] % base; } - - -int main(int argc, char* argv[]) + +int main(int argc, char *argv[]) { - int x[] = {0,0,0,0}; - - bigmul(87654321, 12345678, x); - - printf("%d%d%d%d\n", x[0],x[1],x[2],x[3]); - - return 0; + int x[] = {0, 0, 0, 0}; + + bigmul(87654321, 12345678, x); + + printf("%d%d%d%d\n", x[0], x[1], x[2], x[3]); + + return 0; } \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\350\207\243\347\232\204\346\227\205\350\264\271/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\350\207\243\347\232\204\346\227\205\350\264\271/solution.cpp" index 4f36fecb2..e6a5ee0f8 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\350\207\243\347\232\204\346\227\205\350\264\271/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\244\247\350\207\243\347\232\204\346\227\205\350\264\271/solution.cpp" @@ -1,30 +1,35 @@ -#include +#include using namespace std; -#define mem(a,b) memset(a,b,sizeof(a))//不能mem(double) +#define mem(a, b) memset(a, b, sizeof(a)) //不能mem(double) #define ll long long -const double eps=3e-8; -const int mod=10; -const int maxn=10005;//最好数量范围大一点;1e4+5 && long long -vectored[maxn];//存储每个点的邻接点 -ll edge[maxn][maxn];//存储每个边值 -ll dis[maxn];//存储bfs中从node点开始的路径长 -ll sum=0; -int bfs(int node){ - mem(dis,-1); - queueque; +const double eps = 3e-8; +const int mod = 10; +const int maxn = 10005; //最好数量范围大一点;1e4+5 && long long +vector ed[maxn]; //存储每个点的邻接点 +ll edge[maxn][maxn]; //存储每个边值 +ll dis[maxn]; //存储bfs中从node点开始的路径长 +ll sum = 0; +int bfs(int node) +{ + mem(dis, -1); + queue que; que.push(node); - int ans=node; - dis[node]=0; - while(!que.empty()){ - int now=que.front(); + int ans = node; + dis[node] = 0; + while (!que.empty()) + { + int now = que.front(); que.pop(); - for(int i=0;isum){ - ans=temp; - sum=dis[temp]; + for (int i = 0; i < ed[now].size(); i++) + { + int temp = ed[now][i]; + if (dis[temp] < 0) + { + dis[temp] = dis[now] + edge[now][temp]; + if (dis[temp] > sum) + { + ans = temp; + sum = dis[temp]; } que.push(temp); } @@ -32,25 +37,27 @@ int bfs(int node){ } return ans; } -int main(){ - freopen("in4.txt","r",stdin); - int n,a,b; +int main() +{ + freopen("in4.txt", "r", stdin); + int n, a, b; ll c; - scanf("%d",&n); - for(int i=1;i -#include +#include +#include using namespace std; int main() { int n; - cin>>n; - int sum=0; - int top=0; - int low=100; + cin >> n; + int sum = 0; + int top = 0; + int low = 100; int score; - for(int i=0;i>score; - if(score>top)top=score; - if(score> score; + if (score > top) + top = score; + if (score < low) + low = score; + sum += score; } - printf("%d\n%d\n%.2lf",top,low,(sum*1.0/n)); + printf("%d\n%d\n%.2lf", top, low, (sum * 1.0 / n)); return 0; } diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.cpp" index 850449113..54eadf775 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.cpp" @@ -1,7 +1,9 @@ -#include +#include using namespace std; -int main(){ - struct student{ +int main() +{ + struct student + { string xm; int xh; double yy; @@ -10,19 +12,25 @@ int main(){ }; student a[1000]; int n; - double sum=0,min=301,max=0; - string mins,maxs; - cin>>n; - for(int i=0;i>a[i].xm>>a[i].xh>>a[i].yy>>a[i].sx>>a[i].cpp; - sum=a[i].yy+a[i].sx+a[i].cpp; - if(min>sum){ - min=sum;mins=a[i].xm; + double sum = 0, min = 301, max = 0; + string mins, maxs; + cin >> n; + for (int i = 0; i < n; i++) + { + cin >> a[i].xm >> a[i].xh >> a[i].yy >> a[i].sx >> a[i].cpp; + sum = a[i].yy + a[i].sx + a[i].cpp; + if (min > sum) + { + min = sum; + mins = a[i].xm; } - if(max - +#include + #define N 70 - + void f(char a[][N], int rank, int row, int col) { - if(rank==1){ + if (rank == 1) + { a[row][col] = '*'; return; } - + int w = 1; int i; - for(i=0; i -#include -#include -#include +#include +#include +#include +#include using namespace std; typedef long long ll; -const ll maxn=1e6+50; +const ll maxn = 1e6 + 50; double a[1050][1050]; int main() { - for(ll i=1;i<=29;i++) + for (ll i = 1; i <= 29; i++) { - for(ll j=1;j<=i;j++) + for (ll j = 1; j <= i; j++) { - scanf("%lf",&a[i][j]); + scanf("%lf", &a[i][j]); } } - for(ll i=1;i<=29;i++) + for (ll i = 1; i <= 29; i++) { - for(ll j=1;j<=i;j++) + for (ll j = 1; j <= i; j++) { - a[i+1][j]+=(0.5*a[i][j]); - a[i+1][j+1]+=(0.5*a[i][j]); + a[i + 1][j] += (0.5 * a[i][j]); + a[i + 1][j + 1] += (0.5 * a[i][j]); } } - double minn=1000000000,maxx=-1; - for(ll i=1;i<=30;i++) + double minn = 1000000000, maxx = -1; + for (ll i = 1; i <= 30; i++) { - maxx=max(maxx,a[30][i]); - minn=min(minn,a[30][i]); - printf("%lf\n",a[30][i]); + maxx = max(maxx, a[30][i]); + minn = min(minn, a[30][i]); + printf("%lf\n", a[30][i]); } - printf("%lf\n",maxx*2086458231/minn); + printf("%lf\n", maxx * 2086458231 / minn); } diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.cpp" index 1f96df6ca..15ffc55f5 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.cpp" @@ -1,29 +1,30 @@ #include using namespace std; -int a[10000],N,i,ans = 0; -void findAns(int a[],int start,int An)//国家可派出数组a,当前派出第start国家,已经组合An人 +int a[10000], N, i, ans = 0; +void findAns(int a[], int start, int An) //国家可派出数组a,当前派出第start国家,已经组合An人 { - if(start == N)//找到最后一个国家后 + if (start == N) //找到最后一个国家后 { - if(An == 5) ans++;//如果组合人数An等于派出人数5; - return; + if (An == 5) + ans++; //如果组合人数An等于派出人数5; + return; } - for(i = 0;i<=a[start];i++)//派出第n个国家人数的人数,需检查人数是否满足规范 + for (i = 0; i <= a[start]; i++) //派出第n个国家人数的人数,需检查人数是否满足规范 { - findAns(a,start+1,An+i);//查找下一个国家,记录已经组合数An - } + findAns(a, start + 1, An + i); //查找下一个国家,记录已经组合数An + } } int main() { - //输入规模及数据 - cin>>N; - for(i = 0;i < N;i++) + //输入规模及数据 + cin >> N; + for (i = 0; i < N; i++) { - cin>>a[i]; + cin >> a[i]; } - findAns(a,0,0); - - cout< +#include using namespace std; -int row = 4,col; -int seq[5][8];//下标从1开始 +int row = 4, col; +int seq[5][8]; //下标从1开始 int tmp[11]; int cnt = 0; bool used[10]; -void change(){//将一维数组转换成二维数组 +void change() +{ //将一维数组转换成二维数组 int cur = 1; - for(int i = 1; i <= row ; ++i){ - for(int j = 1; j <= i; ++j){ - seq[i][j] = tmp[cur ++]; + for (int i = 1; i <= row; ++i) + { + for (int j = 1; j <= i; ++j) + { + seq[i][j] = tmp[cur++]; } } } -bool judge(){//判断二维数组是否符合条件 - for(int i = 1; i <= row - 1; ++i){ - for(int j = 1; j <= i ; ++j){ - if(seq[i][j] > seq[i + 1][j] || seq[i][j] > seq[i + 1][j + 1]) return false; - } +bool judge() +{ //判断二维数组是否符合条件 + for (int i = 1; i <= row - 1; ++i) + { + for (int j = 1; j <= i; ++j) + { + if (seq[i][j] > seq[i + 1][j] || seq[i][j] > seq[i + 1][j + 1]) + return false; + } } return true; } int ans = 0; -void dfs(int idx){ - //idx:当前要操作的下标(从1开始) - if(idx == 11){ +void dfs(int idx) +{ + //idx:当前要操作的下标(从1开始) + if (idx == 11) + { change(); - if(judge()){ + if (judge()) + { cnt++; - return ; + return; } - return ; + return; } - for(int i = 0; i <= 9; ++i){ - if(!used[i]){ + for (int i = 0; i <= 9; ++i) + { + if (!used[i]) + { tmp[idx] = i; used[i] = true; dfs(idx + 1); @@ -46,9 +58,10 @@ void dfs(int idx){ } } -int main(){ - memset(used,false,sizeof(used)); +int main() +{ + memset(used, false, sizeof(used)); dfs(1); - cout< -#include +#include +#include using namespace std; int d, a1[4]; -int d1(int *a1) { +int d1(int *a1) +{ int sum = a1[0]; - for (int i = 1; i < 4; i++) { - if (sum % a1[i] != 0) return i; + for (int i = 1; i < 4; i++) + { + if (sum % a1[i] != 0) + return i; } return 0; } -int getS(int *a1) { +int getS(int *a1) +{ int sum = 0, ss = 1; - while(d1(a1) != 0) { + while (d1(a1) != 0) + { int index = d1(a1); a1[0] = a1[0] * a1[index]; ss = a1[index]; } - for (int i = 1; i < 4; i++) { - sum += (a1[0]/a1[i]); + for (int i = 1; i < 4; i++) + { + sum += (a1[0] / a1[i]); } - return sum+ss; + return sum + ss; } -int main() { - for (int sum = 20; sum >= 1; sum--) { - for (int a = 1; a <= 20; a++) { - for (int b = 1; b <= 20; b++) { - for (int c = 1; c <= 20; c++) { +int main() +{ + for (int sum = 20; sum >= 1; sum--) + { + for (int a = 1; a <= 20; a++) + { + for (int b = 1; b <= 20; b++) + { + for (int c = 1; c <= 20; c++) + { a1[0] = sum, a1[1] = a, a1[2] = b, a1[3] = c; - if (getS(a1) == a1[0] && a > b && b > c && sum > a) { + if (getS(a1) == a1[0] && a > b && b > c && sum > a) + { printf("%d, %d, %d, %d, 0\n", sum, a, b, c); - } + } } } } diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.cpp" index 542fd9672..d4dd9dff9 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.cpp" @@ -1,33 +1,35 @@ -#include -#include -#include +#include +#include +#include using namespace std; typedef long long ll; -const int N=1e3+5; -const int mod=100000007; -int n,s,a,b,up; +const int N = 1e3 + 5; +const int mod = 100000007; +int n, s, a, b, up; ll v; -int dp[2][N*(N+1)/2],now; -int ans; +int dp[2][N * (N + 1) / 2], now; +int ans; int main() { - scanf("%d%d%d%d",&n,&s,&a,&b); - dp[now][0]=1; - for(int i=1;i=i)dp[now][j]=(dp[now][j]+dp[!now][j-i])%mod; + dp[now][j] = dp[!now][j]; + if (j >= i) + dp[now][j] = (dp[now][j] + dp[!now][j - i]) % mod; } } - for(int i=0;i<=up;++i)//s-i*a-(n*(n-1)/2-i)*b 是否被n整除 + for (int i = 0; i <= up; ++i) //s-i*a-(n*(n-1)/2-i)*b 是否被n整除 { - v=1ll*s-1ll*i*a+1ll*(up-i)*b; - if(v%n==0)ans=(ans+dp[now][i])%mod; + v = 1ll * s - 1ll * i * a + 1ll * (up - i) * b; + if (v % n == 0) + ans = (ans + dp[now][i]) % mod; } - printf("%d\n",ans); + printf("%d\n", ans); return 0; } \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.cpp" index 43a779dc2..9cd679726 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.cpp" @@ -1,24 +1,24 @@ #include using namespace std; -int num[5][1010]={0}; -int dp(int k,int n) +int num[5][1010] = {0}; +int dp(int k, int n) { - int res=10000; - if(n==0) + int res = 10000; + if (n == 0) return 0; - if(k==1) + if (k == 1) return n; - if(num[k][n]) + if (num[k][n]) return num[k][n]; - for(int i=1;i<=n;i++) + for (int i = 1; i <= n; i++) { - res=min(res,max(dp(k-1,i-1),dp(k,n-i))+1); + res = min(res, max(dp(k - 1, i - 1), dp(k, n - i)) + 1); } - num[k][n]=res; + num[k][n] = res; return res; } int main() { - cout< -#include +#include +#include using namespace std; int main() { - vectorvc1; + vector vc1; int i; - for(i=0;i<2014;i++) - vc1.push_back('a'+(i%19)); - while(vc1.size()!=1) + for (i = 0; i < 2014; i++) + vc1.push_back('a' + (i % 19)); + while (vc1.size() != 1) { - vectorvc2; - cout< vc2; + cout << vc1.size() << endl; + for (i = 1; i < vc1.size(); i += 2) vc2.push_back(vc1[i]); - vc1.assign(vc2.begin(),vc2.end()); - cout< +#include using namespace std; -int main() { - for (int i = 11; i < 35; i++) { +int main() +{ + for (int i = 11; i < 35; i++) + { int i1 = i * i * i; int i2 = i * i1; - if ((i1 >= 1000 && i1 < 10000)&& (i2 >= 100000 && i2 < 1000000)) + if ((i1 >= 1000 && i1 < 10000) && (i2 >= 100000 && i2 < 1000000)) cout << i << " " << i1 << " " << i2 << endl; } return 0; diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\224\231\350\257\257\347\245\250\346\215\256/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\224\231\350\257\257\347\245\250\346\215\256/solution.cpp" index 35faea84e..645b44466 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\224\231\350\257\257\347\245\250\346\215\256/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\224\231\350\257\257\347\245\250\346\215\256/solution.cpp" @@ -1,42 +1,41 @@ //代码3 -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include using namespace std; int ans[10005]; char str[100001]; int main() { int n; - cin>>n; - int i,k=0; + cin >> n; + int i, k = 0; getchar(); - for(i=0; i +using namespace std; + +int main() +{ + int ans = 0; + for (int a = 1; a < 10; a++) + { + for (int b = 1; b < 10; b++) + { + if (b != a) + for (int c = 1; c < 10; c++) + { + if (c != b && c != a) + for (int d = 1; d < 10; d++) + { + if (d != c && d != b && d != a) + for (int e = 1; e < 10; e++) + { + if (e != d && e != c && e != b && e != a) + { + // ab*cde=adb*ce; + if ((a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) * (c * 10 + e)) + ans++; + } + } + } + } + } + } + cout << ans << endl; + return 0; +} diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\251\254\350\231\216\347\232\204\347\256\227\345\274\217/solution.java" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\251\254\350\231\216\347\232\204\347\256\227\345\274\217/solution.java" index e69de29bb..2020a4285 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\251\254\350\231\216\347\232\204\347\256\227\345\274\217/solution.java" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\351\251\254\350\231\216\347\232\204\347\256\227\345\274\217/solution.java" @@ -0,0 +1,30 @@ +public class MAHUSUANSHI { + public static void main(String[] args) { + int ans = 0; + for (int a = 1; a < 10; a++) { + for (int b = 1; b < 10; b++) { + if (b != a) + for (int c = 1; c < 10; c++) { + if (c != a && c != b) + for (int d = 1; d < 10; d++) { + if (d != a && d != b && d != c) + for (int e = 1; e < 10; e++) { + if (e != a && e != b && e != c && e != d) { + if ((a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) + * (c * 10 + e)) { + ans++; + System.out.printf( + "(d%*10+d%)*(d%*100+d%*10+d%)==(d%*100+d%*10+d%)*(d%*10+d%)==d%\n", + a, b, c, d, e, a, d, b, c, e, + (a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) + * (c * 10 + e)); + } + } + } + } + } + } + } + System.out.println(ans); + } +} -- GitLab