福大校赛G&J
来源:互联网 发布:js隐藏按钮如何显示 编辑:程序博客网 时间:2024/06/09 17:34
福大校赛好像2个月前举办的,在福大OJ上搞了同时的在线比赛,当时做了一下,切了4道题。。。之后把G和J独立完成,现在说一下这两道题
G(FZU 2127)
构建符合条件的三角形个数,先列个方程,发现是就是解三元不定不等式组组,虽说三元方程,但可以穷举某一个变量,进而以时间的代价简化问题复杂度,简化为二元不等式组,画图搞定,一些细节要考虑清楚,不过我是1A。。。代码:
#include <iostream>#include <cstdio>using namespace std;#define ll __int64int main(){ int n,a1,a2,b1,b2,c1,c2,i; while (cin>>n) { cin>>a1>>a2>>b1>>b2>>c1>>c2; int p,q; p=max(n/3,c1); q=min(c2,(n-1)/2); ll zs=0; for (i=p;i<=q;i++) { int x,y,x1,y1,x2,y2; x=n-2*i; y=(n-i)/2; if (x<=y) { x1=max(a1,x); y1=min(a2,y); if (x1<=y1) { x2=max(b1,n-i-y1); y2=min(b2,n-i-x1); ll k=y2-x2+1; if (k>0) zs+=k; } } } cout<<zs<<endl; } return 0;}
J(fzu 2129)
这题一看挺经典的,标准组合数学推公式问题,推荐
用dp[i] 表示以第i个数为结尾的个数,sum(i)表示以前i个数组成的子序列和
显然有dp[i] = sum[i-1] +1
这道题重点是解决重数问题,这个只在sum[i]中处理就好了
对于a[i] = a[j] i<j 来讲,dp[i] 被 dp[j] 包含
所以遇到重数时 sum[i] = sum[i-1] + dp[i] - dp[k]
附代码:
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#define mod 1000000007#define N 1000005#define cl(a) memset(a,0,sizeof(a))#define ss(a) scanf("%d",&a)using namespace std;int dp[N],sum[N],b[N];int main(){ int i,n; while (ss(n)!=EOF) { cl(b); for (i=1;i<=n;i++) { int x; ss(x); if (!b[x]) { dp[i]=(sum[i-1]+1)%mod; sum[i]=(sum[i-1]+dp[i])%mod; } else { int t=b[x]; dp[i]=(sum[i-1]+1)%mod; sum[i]=((sum[i-1]+dp[i]-dp[t])%mod+mod)%mod; } b[x]=i; } printf("%d\n",sum[n]); } return 0;}
- 福大校赛G&J
- 河工大校赛J 爱看电视的LsF
- J~G~J~Q
- 武大校赛PE补题(有一个邻接矩阵求m步从i到j的方法数)
- 川大校赛总结
- 郑大校赛总结
- 2015武大校赛
- 武大校赛感想
- 河工大校赛终结
- 河工大校赛总结
- 河工大校赛
- 2017 上大校赛
- 长沙网络赛G,H,J
- 湘大校赛A题
- 地大校赛2014 题解
- 武大校赛E题
- g's'da'j'k
- 武大校赛网络赛B题
- sgu 135 + 184 +117+126+114+118+127
- Innodb monitor介绍
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- ios 单元测试
- android 改变 activity 背景颜色
- 福大校赛G&J
- javaEE—Hebernate学习总结
- Hibernate学习总结(7)
- ESP定律
- libpcap学习(转)
- iOS crash 崩溃问题的追踪方法
- C/C++中extern关键字详解
- 练习而已
- iOS NSPredicate 查询、搜索