群赛4总结----2017.9.6
来源:互联网 发布:青岛网络 电视台 编辑:程序博客网 时间:2024/05/21 22:47
- T1 Arpa and a research in Mexican wave
- 题意
- 解法
- 代码
- 网址这一题
- 小结
- T2 Arpa and an exam about geometry
- 题意
- 解法
- 代码
- 网址这一题
- 小结
- T3 Five Dimensional Points
- 题意
- 解法
- 代码
- 网址这一题
- 小结
- T4 Polycarpus Dice
- 题意
- 解法
- 代码
- 网址这一题
- 小结
- T5 Little Elephant and LCM
- 题意
- 解法
- 代码
- 网址这一题
- 小结
T1 Arpa and a research in Mexican wave
题意:
有n个人,最多有k个人站起来,每秒都有一个人站起来或者是坐下,详情见题目里的note。
解法:
t小于k的时候直接输出t,t大于n的时候就是k−(t−n)。
代码:
#include<bits/stdc++.h>using namespace std;int main(){ int n,k,t; cin>>n>>k>>t; if(t<=k) cout<<t; else if(t>k&&t<=n) cout<<k; else cout<<k-(t-n); return 0;}
网址:这一题
小结:
**此类题目水题。**
T2 Arpa and an exam about geometry
题意:
输入n个数字,在平面上构成n个以(i,Xi)为坐标的点,问是否可以将这些点连成两条不重叠的平行线?可以输出"YES".
解法:
利用斜率.
代码:
#include<bits/stdc++.h> using namespace std; int s[3000],n; bool judge(double k) { int p=-1; for(int i=2; i<=n; i++) { if(s[i]-s[1]==(i-1)*k) continue; if(p==-1) p=i; else if(s[i]-s[p]!=(i-p)*k) return 0; } return p!=-1; } int main() { while(scanf("%d",&n)!=EOF) { for(int i=1; i<=n; i++) scanf("%d",&s[i]); if(judge(s[2]-s[1])||judge((s[3]-s[1])*1.0/2)||judge(s[3]-s[2])) printf("Yes\n"); else printf("No\n"); } }
网址:这一题
小结:
**此类题目需要特判。**
T3 Five Dimensional Points
题意:
现在给n个这样的点,现在定义good点:以这个点开始与任何两个点相连都不是锐角。
反之如果有任何一组点组成的连线是锐角就是bad点。
解法:
找规律.
代码:
#include<bits/stdc++.h>using namespace std;int x[1000][1000];int y[12];int g(int a){ int b=0; for(int i=1; i<=a-2; i++) b+=i; return b;}int f(int a,int b,int c){ int d=0; for(int i=1; i<=5; i++) d+=(x[b][i]-x[a][i])*(x[c][i]-x[a][i]); if(d<=0) return 1; else return 0;}int main(){ int a,b=0,c=0; cin>>a; for(int i=1; i<=a; i++) for(int j=1; j<=5; j++) cin>>x[i][j]; for(int i=1; i<=a; i++) { b=0; int o=0; for(int j=1; j<=a; j++) { for(int k=1; k<=a; k++) { if(j<k&&i!=j&&i!=k) { if(f(i,j,k)==1) b++; if(f(i,j,k)==0) { o++; break; } } } if(o!=0) { i++; break; } } if(c==11) { cout<<0; return 0; } if(b==g(a)) { c++; y[c]=i; } }// cout<<g(10); cout<<c<<endl; for(int i=1; i<=c; i++) cout<<y[i]<<" "; return 0;}
网址:这一题
小结:
**此类题目需要特判。**
T4 Polycarpus’ Dice
题意:
给你n个骰子,然后每个骰子有d[i]面,给你一个a,a表示这n个骰子所扔的点数和
然后问你,每一个骰子有多少个数不能投掷到~
解法:
找规律.
代码:
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 10000000;LL max6[N];int main(){ LL n, A; cin >> n >> A ; LL h = 0; for(int i = 0; i < n; i++) { cin >> max6[i]; h += max6[i]; } for(int i = 0; i < n; i++) { LL ans = 0; LL hou = A + 1 - n; if(max6[i] > hou) ans += (max6[i] - hou); LL y = A - (h - max6[i]); if(y > 0) ans += (y - 1); cout << ans<<" "; } cout << endl;return 0;}
网址:这一题
小结:
**此类题目可以先手算找规律。**
T5 Little Elephant and LCM
题意:
给你一个a序列,找出一个b序列,1=≤bi≤=ai,使得max(bi)=lcm(bi),问这样的bi序列有多少个。
解法:
暴力优化.
代码:
#include<bits/stdc++.h>#include<cmath>using namespace std;#define MAXN 100000#define MOD 1000000007long long a[MAXN+10],n,p[MAXN+10],cnt,ans;void Read(long long &x){ char c; while((c=getchar())&&c!=EOF){ if(c>='0'&&c<='9'){ x=c-'0'; while((c=getchar())&&c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); return; } }}void isfactor(long long n){ long long t=sqrt(n+0.5),i; cnt=0; for(i=1;i<=t;i++) if(n%i==0) p[++cnt]=i; i=cnt; cnt*=2; if(t*t==n) cnt--,i--; for(;i;i--){ p[cnt-i+1]=n/p[i]; }}long long pow(long long a,long long b){ long long ret=1; while(b){ if(b&1) ret=ret*a%MOD; b>>=1; a=a*a%MOD; } return ret;}int main(){ long long i,j,k,t,s; Read(n); for(i=1;i<=n;i++) Read(a[i]); sort(a+1,a+n+1); for(i=1;i<=a[n];i++){ isfactor(i); t=0; s=1; for(j=2;j<=cnt;j++){ k=lower_bound(a+t+1,a+n+1,p[j])-a-1; s=s*pow(j-1,k-t)%MOD; t=k; } s=s*(pow(cnt,n-t)+MOD-pow(cnt-1,n-t))%MOD; ans=(ans+s)%MOD; } printf("%I64d\n",ans);}(代码是抄的,自己还在琢磨中)
网址:这一题
小结:
**此类题目较难。**
阅读全文
0 0
- 群赛4总结----2017.9.6
- 群赛6总结----2017.9.8
- 群赛2总结-----2017.9.4
- 群赛4总结
- 4 . 6 总结
- 群赛5总结----2017.9.7
- 群赛7总结----2017.9.9
- 群赛8总结----2017.9.11
- 2017.9.6 Robot 失败总结
- 2017.9.4 栅栏 失败总结
- 2017.9总结
- 群赛9总结----2017.9.16(奇怪题目)
- 总结6
- 总结6
- 总结6
- 总结4
- 总结4
- 总结4
- [wordpress & nginx]除了homepage其他子页面全是404 not found
- web安全:QQ号快速登录漏洞及被盗原理
- Dubbo初体验:远程服务调用和管控台的搭建
- php涉及金额计算用bc函数比较准
- ajax基础
- 群赛4总结----2017.9.6
- 字串的连接最长路径查找
- C++ 中 ZeroMemory、memset 危险需慎用(转)
- 平时遇到的一些软件安装配置问题解决方案
- PAT 1048. Find Coins
- python由生成器构成的协程语法
- RRC idle 和RRC connect
- ASP.Net Core WebApi几种版本控制对比
- Android自定义数字键盘(支持随机数字)