UESTC 2016 Summer Training #4 Div.2(未完待续)
来源:互联网 发布:电子商务数据加密技术 编辑:程序博客网 时间:2024/06/11 08:52
A
include <bits/stdc++.h>#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9 + 7;using namespace std;int a[105][105];int main(){ int M,N; cin >> N >> M; for(int i = 1;i <= N;i++) for(int j = 1;j <= M;j++) cin >> a[i][j]; int ANS = INF; int mina = 0,minb = 0; for(int i = 1;i <= N;i++) for(int j = 1;j <= M;j++) { if(i == j) continue; int A = 0,B = 0,C = 0,D = 0; for(int k = 1;k <= N;k++) { if(a[k][i] == 1 && a[k][j] == 1) A++; else if(a[k][i] == 1) B++; else if(a[k][j] == 1) C++; else D++; } int ans = 0; ans = max(ans,A); ans = max(ans,B); ans = max(ans,C); ans = max(ans,D); if(ans < ANS) { ANS = ans; mina = i; minb = j; } } printf("%d\n",ANS); printf("%d %d\n",mina,minb); return 0;}
B
#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;using namespace std;int fun(int i){ int j = 2; while(i >= j) { i -= (i / j); j++; } return i;}int main(){ int l,r; cin >> l >> r; int ans = fun(r) - fun(l - 1); //printf("%d %d\n",fun(r),fun(l - 1)); printf("%d\n",ans); return 0;}
C
#include<cstdio>#define N 200005int n,m,ux,uy,ax,ay,a[N],u[N],ck,ans,fx[4]= {1,-1,0,0},fy[4]= {0,0,1,-1};char c;void dfs(int x,int y,int s){ if(x==ux&&y==uy&&s>2||x==ax&&y==ay)//走回起点(s是第几步)或走到终点 ans++; if(u[x*m-m+y]||ans>2||ans&&ck)return; u[x*m-m+y]=1; int r=0; for(int i=0;i<4;i++){ int nx=x+fx[i]; int ny=y+fy[i]; if(nx&&nx<=n&&ny&&ny<=m&&a[nx*m-m+ny]){ r++;//点的度 if(r>2)ck=1; dfs(nx,ny,s+1); } }}int main(){ scanf("%d%d ",&n,&m); for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { c=getchar(); if(c!='#') a[i*m-m+j]=1; if(c=='1') { ux=i; uy=j; } else if(c=='2') { ax=i; ay=j; } } getchar(); } dfs(ux,uy,0); if(ans>2||ans&&ck)printf("YES"); else printf("NO"); return 0;}
D
#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;const int maxn = 1e5 * 2 + 10;char buf[maxn];int cha[26];int ql[maxn], qr[maxn];void init(int len, int k){ memset(qr, -1, sizeof qr); int l = len, ct = 0; for (int i = len ; i > 0 ; i--) { while(ct < k && l > 0) { if (!cha[buf[l] - 'a']) ct++; cha[buf[l] - 'a']++; --l; } if (ct == k) qr[i] = l + 1; if (--cha[buf[i] - 'a'] == 0) --ct; } memset(cha, 0, sizeof cha); memset(ql, -1, sizeof ql); l = len, ct = 0; for (int i = len ; i > 0 ; i--) { while(ct <= k && l > 0) { if (!cha[buf[l] - 'a']) ct++; cha[buf[l] - 'a']++; --l; } if (ct == k + 1) ql[i] = l + 2; else if (ct == k && l == 0) ql[i] = l + 1; if (--cha[buf[i] - 'a'] == 0) --ct; }}struct tree{ int num; int m;}t[maxn * 4];void build(int l, int r, int p){ t[p].num = maxn; if (l == r) return; t[p].m = (l + r) / 2; build(l, t[p].m, 2 * p); build(t[p].m + 1, r, 2 * p + 1);}int query(int l, int r, int ll, int rr, int p){ if (l == ll && r == rr) return t[p].num; if (ll > t[p].m) return query(t[p].m + 1, r, ll, rr, 2 * p + 1); else if (rr <= t[p].m) return query(l, t[p].m, ll, rr, 2 * p); return min( query(l, t[p].m, ll, t[p].m, 2 * p), query(t[p].m + 1, r, t[p].m + 1, rr, 2 * p + 1));}void modify(int l, int r, int p, int pp, int num){ if (l == r) { t[p].num = num; return; } if (pp <= t[p].m) modify(l, t[p].m, 2 * p , pp, num); else modify(t[p].m + 1, r, 2*p + 1, pp, num); t[p].num = min(t[p].num, num);}int main(){ int k, len; scanf("%d%s", &k, buf + 1); len = strlen(buf + 1); init(len, k); build(0, len, 1); for (int i = 1 ; i <= len ; i++) { int ans = -1; if (ql[i] == 1) modify(0, len, 1, i, ans = 1); else if (ql[i] != -1) { ans = query(0, len, ql[i] - 1, qr[i] - 1, 1); //printf("%d\n", ans); if (ans != maxn) modify(0, len, 1, i, ++ans); else ans = -1; } printf("%d ", ans); } return 0;}
G
#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;using namespace std;int main(){ double x1,y1,x2,y2; double a1,b1,a2,b2; scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2); scanf("%lf %lf %lf %lf",&a1,&b1,&a2,&b2); double a = (a1 - a2) * (a1 - a2) + (b1 - b2) * (b1 - b2); double b = (b2 - b1) * (y2 - y1) + (a2 - a1) * (x2 - x1); b *= 2; double c = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); double ans = (4 * a * c - b * b) / (4 * a); if(b * a < 0) printf("%.15f\n",sqrt(ans)); else printf("%.15f\n",sqrt(c)); return 0;}
H
#include <bits/stdc++.h> using namespace std; const int N=1e5+10; int a[2*N], b[2*N], t[2*N], r[2*N]; int main() { int n, m; scanf("%d%d", &n, &m); for(int i=1; i<=n; i++) { scanf("%d", &a[i]); b[i] = a[i]; } int ti, ri, len=0; for(int i=0; i<m; i++) { scanf("%d%d", &ti, &ri); while(len && ri>=r[len-1]) len--; t[len]=ti, r[len]=ri, len++; } r[len++]=0; sort(b+1, b+1+r[0]); int lb=1, rb=r[0]; for(int i=1; i<len; i++) { for(int j=r[i-1]; j>r[i]; j--) { if(t[i-1]==1) a[j]=b[rb--]; else a[j]=b[lb++]; } } printf("%d", a[1]); for(int i=2; i<=n; i++) { printf(" %d", a[i]); } printf("\n"); return 0; }
I
#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9 + 7;using namespace std;struct point { int id,x,y; bool operator <(point a)const { return y < a.y; } }; vector <point> bx[1010]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { point t; scanf("%d%d",&t.x,&t.y); t.id=i; bx[t.x/1000].push_back(t); } bool flag=0; for(int i=0;i<=1000;i++) { sort(bx[i].begin(),bx[i].end()); if(bx[i].size()) { int len=bx[i].size(); if(!flag) for(int j=0;j<len;j++) printf("%d ",bx[i][j].id); else for(int j=len-1;j>-1;j--) printf("%d ",bx[i][j].id); flag^=1; } } }
J
#include<bits/stdc++.h>using namespace std;typedef pair<int,int> II;typedef vector< II > VII;typedef vector<int> VI;typedef vector< VI > VVI;typedef long long int LL;#define PB push_back#define MP make_pair#define F first#define S second#define SZ(a) (int)(a.size())#define ALL(a) a.begin(),a.end()#define SET(a,b) memset(a,b,sizeof(a))#define si(n) scanf("%d",&n)#define dout(n) printf("%d\n",n)#define sll(n) scanf("%lld",&n)#define lldout(n) printf("%lld\n",n)#define fast_io ios_base::sync_with_stdio(false);cin.tie(NULL)#define TRACE#ifdef TRACE#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)template <typename Arg1>void __f(const char* name, Arg1&& arg1){ cerr << name << " : " << arg1 << std::endl;}template <typename Arg1, typename... Args>void __f(const char* names, Arg1&& arg1, Args&&... args){ const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);}#else#define trace(...)#endif//FILE *fin = freopen("in","r",stdin);//FILE *fout = freopen("out","w",stdout);const int N=2000005;const int M=100000000;const int K=30;const LL MOD=1000000007;VI prim[N];int vis[N];LL fact[K],invfact[K];LL powmod(LL a,LL b){ if(b==0) return 1; LL ret=powmod(a,b/2); ret=(ret*ret)%MOD; if(b%2==1) { ret=(ret*a)%MOD; } return ret;}LL ncr(int n,int r){ LL ret=1; if(n>=(int)MOD) return 0; for(int i=0;i<r;i++) { ret=(ret*1LL*(n-i))%MOD; } ret=(ret*invfact[r])%MOD; return ret;}void pre(){ for(int i=2;i<N;i++) if(!vis[i]) for(int j=i;j<N;j+=i) { vis[j]=1; prim[j].PB(i); } fact[0]=1ll; invfact[0]=1; for(int i=1;i<K;i++) { fact[i]=(fact[i-1]*1LL*i)%MOD; invfact[i]=powmod(fact[i],MOD-2); } return;}int main(){ fast_io; pre(); int t; cin>>t; while(t--) { int n,m,z; cin>>n>>z; m=n; LL ans=1; for(int i=0;i<SZ(prim[n]);i++) { int p=prim[n][i]; int ct=0; while(m%p==0) { ct++; m=m/p; } ans=(ans*ncr(ct+z-1,ct))%MOD; } cout<<ans<<"\n"; } return 0;}
0 0
- UESTC 2016 Summer Training #4 Div.2(未完待续)
- UESTC 2016 Summer Training #2 Div.2(未完待续)
- UESTC 2016 Summer Training #1 Div.2(未完待续)
- UESTC 2016 Summer Training #3 Div.2(未完待续)
- UESTC 2016 Summer Training #5 Div.2(未完待续)
- UESTC 2016 Summer Training #6 Div.2(未完待续)
- UESTC 2016 Summer Training #10 Div.2(未完待续)
- UESTC 2016 Summer Training #18 Div.2(未完待续)
- UESTC 2016 Summer Training #19 Div.2(未完待续)
- UESTC 2017 Summer Training #2 Div.2
- UESTC 2017 Summer Training #1 Div.2
- UESTC 2016 Summer Training #4 Div.2 A - (。•_•。) 预处理打表
- UESTC 2016 Summer Training #4 Div.2 B - ฅ(*`ω´*)ฅ 有趣的思维题
- UESTC 2016 Summer Training #2 Div.2 A dp、递推、多阶段问题
- UESTC 2016 Summer Training #1 Div.2 E - Accepted Passwords 讨论
- UESTC 2016 Summer Training #1 Div.2 F - Mission in Amman (A) 动态维护(刷新:--、++)
- UESTC 2016 Summer Training #1 Div.2 L - Plus or Minus (A) dfs
- UESTC 2016 Summer Training #1 Div.2 H - Queue (A) 贪心
- RecyclerView详细介绍&使用。
- Comparable与Comparator接口
- 机器学习常见的错误
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- 【计算机图形学】图形显示方式-光栅扫描显示
- UESTC 2016 Summer Training #4 Div.2(未完待续)
- 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1 note1
- 自定义TextView,设置占位文字
- Codeforces 600.B Queries about less or equal elements
- linux中如何以一个命令的输出作为另外一个命令的输入---用``
- 解决Swing布局内组件宽度过小的问题
- 分类问题损失函数的信息论解释
- Android基础--下载安装app,会提示完成和打开,点击打开运行所产生的问题
- Windows7-64位python2.7、NumPy以及matplotlib的安装