2015.10.19 福州大学第九届程序设计竞赛

FZU 2086 餐厅点餐

枚举

练的时候以为是dp---(事实上这场只做了10来分钟---就愉快地滚去吃饭了---)

  1 #include<cstdio>
  2 #include<cstring>
  3 #include<iostream>
  4 #include<algorithm>
  5 using namespace std;
  6 int A,B,C,D,E;
  7 int a[15];//汤
  8 int b[15];//饭
  9 int c[15];//面
 10 int d[15];//荤
 11 int e[15];//素
 12 int minn,maxx;
 13 int sum;
 14
 15 //一荤一素
 16 //一荤两素
 17 //两荤一素
 18 //两荤两素
 19
 20 void solve(){
 21     int res = 0;
 22
 23     for(int i = 1;i <= B;i++){
 24         for(int j = 1;j <= A;j++){
 25              sum = 0;
 26
 27             for(int p = 1;p <= D;p++){
 28                 for(int q = 1;q <= E;q++){
 29                     sum = b[i] + a[j];
 30                     sum += d[p] + e[q];
 31                     if(sum >= minn && sum <= maxx) res++;
 32                 }
 33             }
 34
 35             for(int p=1;p <= D;p++){
 36                 for(int q=1;q <= E;q++){
 37                     for(int z = q+1;z <= E;z++){
 38                         sum = b[i] + a[j];
 39                         sum += d[p] + e[q] + e[z];
 40                         if(sum >= minn && sum <= maxx) res++;
 41                     }
 42                 }
 43             }
 44
 45
 46             for(int p=1;p <= D;p++){
 47                 for(int q = p+1;q <= D;q++){
 48                     for(int z = 1;z <= E;z++){
 49                         sum = b[i]+a[j];
 50                         sum += d[p] + d[q] + e[z];
 51                         if(sum >= minn && sum <= maxx) res++;
 52                     }
 53                 }
 54             }
 55
 56             for(int p=1;p <= D;p++){
 57                 for(int q = p+1;q <= D;q++){
 58                     for(int z = 1;z <= E;z++){
 59                         for(int zz = z+1;zz <= E;zz++){
 60                             sum = b[i]+a[j];
 61                         sum += d[p] + d[q] + e[z] + e[zz];
 62                         if(sum >= minn && sum <= maxx) res++;
 63                         }
 64
 65                     }
 66                 }
 67             }
 68
 69
 70         }
 71     }
 72
 73     for(int i = 1;i <= C;i++){
 74         sum = c[i];
 75         for(int p = 1;p <= D;p++){
 76                 for(int q = 1;q <= E;q++){
 77                     sum = c[i];
 78                     sum += d[p] + e[q];
 79                     if(sum >= minn && sum <= maxx) res++;
 80                 }
 81             }
 82
 83             for(int p=1;p <= D;p++){
 84                 for(int q=1;q <= E;q++){
 85                     for(int z = q+1;z <= E;z++){
 86                         sum = c[i];
 87                         sum += d[p] + e[q] + e[z];
 88                         if(sum >= minn && sum <= maxx) res++;
 89                     }
 90                 }
 91             }
 92
 93             for(int p=1;p <= D;p++){
 94                 for(int q = p+1;q <= D;q++){
 95                     for(int z = 1;z <= E;z++){
 96                         sum = c[i];
 97                         sum += d[p] + d[q] + e[z];
 98                         if(sum >= minn && sum <= maxx) res++;
 99                     }
100                 }
101             }
102
103             for(int p=1;p <= D;p++){
104                 for(int q = p+1;q <= D;q++){
105                     for(int z = 1;z <= E;z++){
106                         for(int zz = z+1;zz <= E;zz++){
107                             sum = c[i];
108                             sum += d[p] + d[q] + e[z] + e[zz];
109                             if(sum >= minn && sum <= maxx) res++;
110                         }
111
112                     }
113                 }
114             }
115     }
116     printf("%d\n",res);
117 }
118
119 int main(){
120     int T;
121     scanf("%d",&T);
122     while(T--){
123         scanf("%d %d %d %d %d",&A,&B,&C,&D,&E);
124         for(int i = 1;i <= A;i++) scanf("%d",&a[i]);
125         for(int i = 1;i <= B;i++) scanf("%d",&b[i]);
126         for(int i = 1;i <= C;i++) scanf("%d",&c[i]);
127         for(int i = 1;i <= D;i++) scanf("%d",&d[i]);
128         for(int i = 1;i <= E;i++) scanf("%d",&e[i]);
129         scanf("%d %d",&minn,&maxx);
130
131         solve();
132
133     }
134     return 0;
135 } 

FZU 2087 统计树边

FZU 2088 最长队名

string sort一下

wtw敲的---

FZU 2089 数字游戏

还是wtw敲的----

没有编译就交了----

果然这场比赛打得不认真---

FZU 2090 旅行社的烦恼

FZU 2091 播放器

FZU 2092 收集水晶

FZU 2093 寻找兔子

时间: 2024-10-05 12:42:49

2015.10.19 福州大学第九届程序设计竞赛的相关文章

FZU-2231 平行四边形数 From 福州大学第十三届程序设计竞赛

FZU-Problem 2231 平行四边形数 Accept: 66 Submit: 210 Time Limit: 2000 mSec Memory Limit : 32768 KB Problem Description 在一个平面内给定n个点,任意三个点不在同一条直线上,用这些点可以构成多少个平行四边形?一个点可以同时属于多个平行四边形. Input 多组数据(<=10),处理到EOF. 每组数据第一行一个整数n(4<=n<=500).接下来n行每行两个整数xi,yi(0<=

福州大学第十届程序设计竞赛 -- 部分题解

题目传送:福州大学第十届程序设计竞赛 Problem A 神庙逃亡 水题 AC代码: #include<cstdio> #include<cmath> #include<iostream> using namespace std; int s, h, vx, vy; int main() { int w; cin >> w; while(w--){ cin >> s >> h >> vx >> vy; long

HDU 6467 简单数学题 【递推公式 &amp;&amp; O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 308    Accepted Submission(s): 150 Problem Description 已知 F(n)=∑i=1n(i×∑j=inCij) 求 F(n) m

湖南省第七届程序设计竞赛 最优对称路径

http://acm.nyist.net/JudgeOnline/problem.php?pid=564 湖南省第七届大学生计算机程序设计竞赛 题目G 最优对称路径 给一个n行n列的网格,每个格子里有一个1到9的数字.你需要从左上角走到右下角,其中每一步只能往上.下.左.右四个方向之一走到相邻格子,不能斜着走,也不能走出网格,但可以重复经过一个格子.为了美观,你经过的路径还必须关于"左下-右上"这条对角线对称.下图是一个6x6网格上的对称路径. 你的任务是统计所有合法路径中,数字之和最

福州大学第十三届程序设计竞赛_重现

Problem A Calculus Midterm 题意:略 题解:~~ Problem B 翻翻棋 题意:略 题解:~~ Problem C 平行四边形数 题意:略 题解:~~ Problem D 炉石传说 题意:略 题解:最直接的一个做法就是二分图,跑一遍判断是否匹配的数量为n.还可以的一个做法是贪心:先把对手的血量从大到小排,然后对于自己,选一个能满足对方攻击的自身攻击力最小的一个随从,然后不断重复,最后判断有无可选即可. 1 /*zhen hao*/ 2 #include <cstdi

福州大学第十五届程序设计竞赛_重现赛B题迷宫寻宝

Problem B 迷宫寻宝 Accept: 52    Submit: 183Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口.一些墙壁以及一个宝藏.由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它直接相邻的其他四个位置(上.下.左.右).现洪尼玛在迷宫的入口处,问他最少需要走几步才能拿到宝藏?若永远无法拿到宝藏,则输出-

福州大学第十三届程序设计竞赛_重现总结

 Problem C 平行四边形数 Accept: 82    Submit: 425 Time Limit: 2000 mSec    Memory Limit : 32768 KB  Problem Description 在一个平面内给定n个点,任意三个点不在同一条直线上,用这些点可以构成多少个平行四边形?一个点可以同时属于多个平行四边形.  Input 多组数据(<=10),处理到EOF. 每组数据第一行一个整数n(4<=n<=500).接下来n行每行两个整数xi,yi(0<

北京师范大学第十六届程序设计竞赛决赛-重现赛 ACFGI

A 塞特斯玛斯塔 题目描述 quailty是一名狂热的ACM音游选手,沉迷各种音乐游戏,比如Lunatic Rave 2,osu!之类的. 今天,quailty玩的是国内游戏厂商雷亚(并不是赞助商)出品的一款音乐游戏Cytus. 游戏中,玩家需要随着游戏界面中上下移动的扫描线来适时演奏对应音符. 当上下移动的黑色线(扫描线)与圆形的物体(音符)的圆心重合时点击音符. 普通音符(图中第一种)只需点击即可. 锁链音符(图中第二种)将带箭头的音符(滑块)按下后不要松开,并将滑块沿着斜线和圆点组成的路径

东南大学第十三届程序设计竞赛初赛题解

问题 A: 天梯评分系统 题目描述 在一个下雨的日子,沈学姐和四个好基友约定无事一同打dota(dota是一个5对5的MOBA类游戏)因为想证明谁最NB,他们就全部注册新号去爬天梯了.天梯有一套完整的评分系统,它可以根据每位选手每局的数据进行评分,因为dota的英雄既有辅助又有ganker还有后期,所以不同的英雄的评分标准不一样.可惜那天天梯服务器维护,无法进行评分.于是,他们记录下每一局的数据,找你来帮忙,希望你能够帮他们仿照天梯编一个评分系统,以便于他们比较谁是真正的神牛. 已知对于每个账号