2013吉林邀请
来源:互联网 发布:php array key 排序 编辑:程序博客网 时间:2024/04/28 20:56
1001 Tutor
加起来除以12 保留2位小数 结尾0不要
我先扩大100倍 模拟一下进位看四舍五入后有几个0 在输出
#include <stdio.h>int main(){ int t,i; double sum,x; scanf("%d",&t); while(t--) { int flag1 = 0; int flag2 = 0; sum = 0; for(i = 0; i < 12; i++) { scanf("%lf",&x); sum += x; } //sum = 12.894; sum /= 12; double s = sum; int k = sum *1000; k %= 10; if( k >= 5) sum += 0.01; k = sum * 100; k %= 10; if(k == 0) flag1 = 1; k = sum * 10; k %= 10; if(k == 0) flag2 = 1; if(!flag1) printf("$%.2f\n",s); else if(flag1 && !flag2) printf("$%.1f\n",s); else if(flag1 && flag2) printf("$%.0f\n",s); } return 0;}
1004 D-City
从最后一条边开始做并查集 n-集合数
<span style="color:#000000;">#include <stdio.h>const int MAX = 10010;int bin[MAX];struct node{ int u,v;}a[MAX*10];int find(int x){ if(x != bin[x]) return bin[x] = find(bin[x]); return bin[x];}void init(int n){ for(int i = 0;i <= n; i++) bin[i] = i;}int main(){ int n,m; int i,j; int cnt = 0; int ans[MAX*10]; while(scanf("%d %d",&n,&m)!=EOF) { for(i = 0;i < m; i++) { scanf("%d %d",&a[i].u,&a[i].v); } init(n); cnt = 0; for(i = m - 1; i > 0; i--) { int x = find(a[i].u); int y = find(a[i].v); if(x != y) { bin[x] = y; cnt++; } ans[i] = n - cnt; } ans[m] = n; for(i = 1;i <= m; i++) printf("%d\n",ans[i]); } return 0;}</span>
1005 GCD and LCM
设gcd(x,y,z) = n lcm(x,y,z) = m; 那么设p = m/n(m%n != 0 无解)
将想x,y,z分别除以n 得到xx,yy,zz 因为去掉了最大公约数n 所以gcd(xx,yy,zz) = 1 , lcm(xx,yy,zz) = p = m / n;
对p分解因子 假设有a 个t1因子b个t2因子.....
因为gcd(xx,yy,zz) = 1 所以3个中有一个只有0个t1 有一个有a个t1剩下的可以有 0 ~ a个
1.不看0和a 因为3个数不同 有6中 有6*(a-1)中
2.再看0和a 有6种
所以有6*a中 这只是a因子的 b因子和a因子没有影响 所以种数是所有因子的情况相乘
#include <cstdio>#include <cmath>int main(){int t,i;int n,m;int cnt;__int64 ans;scanf("%d",&t);while(t--){scanf("%d %d",&n,&m);if(m%n){printf("0\n");continue;}m /= n;ans = 1;int k = sqrt(m) + 1;for(i = 2;i <= k; i++){if(m == 1)break;cnt = 0;while(m % i == 0){cnt++;m /= i;}if(cnt)ans *= 6*cnt;}if(m != 1)ans *= 6;printf("%I64d\n",ans);}return 0;}
1007 Cannon
深搜 开始怕超时 然后就写了下31ms 过了
#include <cstdio>#include <cstring>int n,m,q;int max;int a[10][10];int flag = 0;bool check(int x,int y){int i;int cnt;cnt = 0;for(i = x-1;i >= 0; i--){if(a[i][y]){if(a[i][y] == 2 && cnt == 1)return false;cnt++;}if(cnt > 1)break;}cnt = 0;for(i = y-1;i >= 0; i--){if(a[x][i]){if(a[x][i] == 2 && cnt == 1)return false;cnt++;}if(cnt > 1)break;}return true;}void dfs(int l,int num){if(l == n * m){if(max < num)max = num;return;}int x = l / m;int y = l % m;if(!a[x][y] && check(x,y)){a[x][y] = 2;dfs(l+1,num+1);a[x][y] = 0;}dfs(l+1,num);}int main(){int i,j;int u,v;while(scanf("%d %d %d",&n,&m,&q)!=EOF){memset(a,0,sizeof(a));for(i = 0;i < q; i++){scanf("%d %d",&u,&v);a[u][v] = 1;}max = 0;dfs(0,0);printf("%d\n",max);}return 0;}
1008 Play Game
dp很弱 思路参考网上的 记忆化搜索
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAX = 22;int dp[MAX][MAX][MAX][MAX];int a[MAX];int suma[MAX];int b[MAX];int sumb[MAX];int dfs(int s1,int e1,int s2,int e2){int &p = dp[s1][e1][s2][e2];if(p)return p;int temp = 0;if(s1 <= e1)temp = max(temp,suma[e1] - suma[s1-1] + sumb[e2] - sumb[s2-1] - dfs(s1+1,e1,s2,e2));if(s1 <= e1)temp = max(temp,suma[e1] - suma[s1-1] + sumb[e2] - sumb[s2-1] - dfs(s1,e1-1,s2,e2));if(s2 <= e2)temp = max(temp,suma[e1] - suma[s1-1] + sumb[e2] - sumb[s2-1] - dfs(s1,e1,s2+1,e2));if(s2 <= e2)temp = max(temp,suma[e1] - suma[s1-1] + sumb[e2] - sumb[s2-1] - dfs(s1,e1,s2,e2-1));p = temp;return p;}int main(){int t;int n;int i;scanf("%d",&t);while(t--){scanf("%d",&n);for(i = 1;i <= n; i++){scanf("%d",&a[i]);suma[i] = suma[i-1] + a[i];}for(i = 1;i <= n; i++){scanf("%d",&b[i]);sumb[i] = sumb[i-1] + b[i];}memset(dp,0,sizeof(dp));printf("%d\n",dfs(1,n,1,n));}return 0;}
0 0
- 2013吉林邀请
- 2013 吉林通化邀请赛 Tutor 有点坑的水题
- 2013吉林通化邀请赛 1005 GCD and LCM
- 2013 ACM-ICPC吉林通化全国邀请赛部分题解
- HDU 4499 connon(2013吉林通化邀请赛G)
- HDU 4597 Play Game(2013吉林通化邀请赛H)
- hdu 4597 2013吉林通化邀请赛 Play Game 记忆化搜索
- 2013 吉林通化邀请赛 D-City 离线型的并查集
- 2013 ACM-ICPC吉林通化全国邀请赛——题目重现
- HDU 4496 Tutor 2013 ACM-ICPC吉林通化全国邀请赛E题
- HDU 4599 Dice 2013 ACM-ICPC吉林通化全国邀请赛J题
- HDU 4597 Play Game 2013 ACM-ICPC吉林通化全国邀请赛H题
- 2013吉林通化邀请赛 1004 D-City 并查集求连通分支数
- 2013年11月吉林综合性网站及社区网站综合影响力排名
- 2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4496 D-City (并查集)
- 2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4597 Play Game (博弈 + 区间dp)
- 2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4499 Cannon (搜索)
- 2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4493 Tutor (水)
- 两个ViewController间传值
- Java完全手册笔记4
- 电子商务刘江浩
- offsetLeft,Left,clientLeft的区别
- linux下系统调用
- 2013吉林邀请
- 《SAS应用统计》学习笔记[相关和简单回归分析]
- Oracle 获取日期的周数
- Linux内核中的IPSEC实现(7)
- 三星4G内存已量产
- document.getElementsByClassName 的理想实现
- Ubuntu12.10中安装ati显卡驱动amd driver 13.1
- Python补充01 序列的方法
- shell 获取文件后缀