SGU 代码集 (Volume 1)
来源:互联网 发布:腾讯数据分析招聘 编辑:程序博客网 时间:2024/05/22 01:47
SGU 100~119 一句话题解,代码 (更新中……)
103 ...
104 ...
106 ...
100 A+B problem
101 Domio 构图,求一个欧拉路# include <iostream># include <cstdio># include <cstring># include <vector>using namespace std;#define rep(i,n) for(int i=0;i<n;i++)#define PNA {puts("No solution");return 0;}#define N 10#define M 210int d[N], c[N][N], ans[M], tot;vector<int> g[N][N];void add_edge(int x,int y,int c){ g[x][y].push_back(c);}inline int abs(int x){ return x<0? -x:x;}void Dfs(int x){ for(int i=0; i<7; i++) if(c[x][i]) { c[x][i]--; c[i][x]--; Dfs(i); } ans[tot++]=x;}void write(int x,int y){ if(g[x][y].size()) { printf("%d +\n",g[x][y].back()); g[x][y].pop_back(); }else { printf("%d -\n",g[y][x].back()); g[y][x].pop_back(); }}int main(){ int m,x,y; int S; scanf("%d",&m); rep(i,m){ scanf("%d%d",&x,&y); g[x][y].push_back(i+1); c[x][y]++; c[y][x]++; d[x]++; d[y]++; } tot = 0; rep(i,7) if(d[i])S = i; rep(i,7) if(d[i]&1) S = i, tot++; if (tot>2) PNA; tot = 0; Dfs(S); if(tot<=m) PNA; rep(i,m) write(ans[i],ans[i+1]); //while(1); return 0;}
102 Coprimes 求phi(n)
# include <iostream># include <cstring>using namespace std;bool p[10001];void prime_make(int N){ memset(p,1,sizeof(p)); for(int i=2; i*i<=N; i++) if(p[i]) for(int j=i<<1; j<=N; j+=i) p[j] = false;}void solve(const int n){ int res = n; for(int i=2; i<=n; i++) if(p[i] && n%i==0) res -= res/i; cout << res << endl;}int main(){ int n; cin >> n; prime_make(n); solve(n);}
103 ...
104 ...
105 Div 3 水题
# include <iostream>int main(){ long long n; std::cin >> n; std::cout << n - (n+2)/3;}
106 ...
107 987654321problem 水题
# include <iostream># include <cstdio>using namespace std;const int m =987654321;typedef long long ll;bool cmp(ll a,ll b,int len){ while(len--) { if(a%10!=b%10) return false; a/=10; b/=10; } return true;}long long pow = 1;int t;void dfs(ll x,int dep){ if(dep==9) { //cout << x << endl; t++; return; } long long cur = x; for(int i=0; i<10; i++) { if(cmp(cur*cur,m,dep+1)) { pow *=10; dfs(cur,dep+1); pow /=10; } cur += pow; }}int main(){ dfs(0,0); int n; cin >> n; if(n<=8) cout << 0 << endl; else if(n==9) cout << t << endl; else { cout << t*9; int k = n-10; while(k--)printf("0"); cout<<endl; } return 0;}
108 ~ 119 ……
- SGU 代码集 (Volume 1)
- sgu代码
- android volume设置 代码分析
- volume
- volume
- nova volume-attach代码流程分析
- SGU
- SGU
- SGU
- SGU
- SGU
- SGU
- (SGU
- SGU
- SGU
- SGU
- SGU
- SGU
- 囚犯和开关的问题
- 部落卫队问题(分支限界法)
- ID选择器的一些例子
- 大数据的含义
- 最小生成树MST POJ-2485
- SGU 代码集 (Volume 1)
- class类选择器
- void LUT(InputArray src, InputArray lut, OutputArray dst)
- vim+ctags+cscope(工欲善其事,必先利其器。)
- hdu 1068 Girls and Boys (二分图匹配)
- 深入浅出MyBatis-Configuration
- 特殊的选择器
- 如何安装使用SQL
- 2014年3月29日缅甸将举行人口普查