10.18 noip模拟试题
分火腿
(hdogs.pas/.c/.cpp)
时间限制:1s;内存限制 64MB
题目描述:
小月言要过四岁生日了,她的妈妈为她准备了n根火腿,她想将这些火腿均分给m位小朋友,所以她可能需要切火腿。为了省事,小月言想切最少的刀数,使这n根火腿分成均等的m份。请问最少要切几刀?
输入描述:
第一行一个整数T,表示有T组数据。
接下来T组数据,每组共一行,有两个数字n,m。
输出描述:
每组数据一行,输出最少要切的刀数。
样例输入:
2
2 6
6 2
样例输出:
4
0
数据范围:
100%的数据保证T<=1000;n,m<=2147483647。
/*数论题 似乎搞麻烦了 可以化简*/
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll T,n,m,lcm,gcd;
ll Gcd(ll x,ll y){
return y?Gcd(y,x%y):x;
}
ll Lcm(ll x,ll y){
return x/Gcd(x,y)*y;
}
int main()
{
freopen("hdogs.in","r",stdin);
freopen("hdogs.out","w",stdout);
cin>>T;
while(T--){
cin>>n>>m;
gcd=Gcd(n,m);
n/=gcd;m/=gcd;
lcm=Lcm(n,m);
ll x=(lcm-n)/n*gcd;
cout<<x<<endl;
}
return ;
}
无聊的会议
(meeting.pas/.c/.cpp)
时间限制:1s;内存限制 128MB
题目描述:
土豪学长作为一名光荣的学生会干部,每天要参加很多无聊的会议。他发现:他开会的会议桌一定是正n边形,n个干部坐在这个多边形顶点上。因为太无聊了,所以他想要数出所有的“完全”等腰三角形——这种等腰三角形的三个顶点一定全是给出n多边形的顶点,且三个顶点上坐的干部性别相同。
土豪学长是土豪,他用1000000000%10的佣金雇用你,让你帮他数。PS:如果两个“完全”等腰三角形三个顶点相同,计算时只算一个。
输入描述:
第一行一个数字T,表示有T组数据。
接下来有T组数据,每组数据共一行。这一行给出一个长度为n的字符串,表示正n边形n个顶点上干部的性别。1为男,0为女。
输出描述:
对于第i组数据:输出”Case i: ans”(不带引号),ans为“完全”等腰三角形的数量。
样例输入:
5
0001
01
10001
1101010
111010
样例输出:
Case 1: 1
Case 2: 0
Case 3: 1
Case 4: 3
Case 5: 2
数据范围:
40%的数据保证n<=20
100%的数据保证 n<=10^6
所有数据保证T<=10
/*
n*n*n暴力40 开始傻逼的写x==y==z....
正解比较神奇 看不懂....又没有注释
于是弃疗了QAQ
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 2000010
using namespace std;
int T,n,ans,sum,cas,x,y,z;
char s[maxn];
int main()
{
//freopen("meeting.in","r",stdin);
//freopen("meeting.out","w",stdout);
scanf("%d",&T);
while(T--){
scanf("%s",s);
n=strlen(s);ans=;sum=
for(int i=;i<n;i++)
s[i+n]=s[i];
for(int i=;i<n;i++)
for(int j=i+;j<n+i;j++)
for(int k=j+;k<n+i;k++)
if(s[i]==s[j]&&s[j]==s[k]){
x=j-i;y=k-j;z=n*-k+i-n;
if(x==y&&y==z)sum++;
else if(x==y||y==z||x==z)ans++;
}
ans/=;
if(n%==)ans+=sum/;
printf("Case %d: %d\n",++cas,ans);
}
return ;
}
班服
(shirt.pas/.c/.cpp)
时间限制:1s;内存限制 128MB
题目描述:
要开运动会了,神犇学校的n个班级要选班服,班服共有100种样式,编号1~100。现在每个班都挑出了一些样式待选,每个班最多有100个待选的样式。要求每个班最终选定一种样式作为班服,且该班的样式不能与其他班级的相同,求所有可能方案的总数,由于方案总数可能很大,所以要求输出mod 1000000007后的答案。
输入描述:
共有T组数据。
对于每组数据,第一行为一个整数n,表示有n个班级。
2~n+1行,每行有最多100个数字,表示第i-1班待选班服的编号。
输出描述:
对于每组数据,输出方案总数 mod 1000000007后的答案。
样例输入:
2
3
5 100 1
2
5 100
2
3 5
8 100
样例输出:
4
4
数据范围:
对于30%的数据,1<=T<=3, 1<=n<=3,每班待选样式不超过10种。
对于50%的数据,1<=T<=5, 1<=n<=5,每班待选样式不超过50种。
对于100%的数据,1<=T<=10, 1<=n<=10,每班待选样式不超过100种。
/*简单的状丫 考试没时间了 打了50的暴力*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 3010
#define mod 1000000007
using namespace std;
int T,n,c[][],f[][maxn],ans,x;
char s;
void Solve(){
f[][]=;//f[i][j]表示前i种服装 选不选的状态集合为j的方案数
for(int i=;i<=;i++)
for(int j=;j<(<<n);j++){
f[i][j]+=f[i-][j];
for(int k=;k<=c[i][];k++)
if(j&(<<c[i][k]-)){
f[i][j]+=f[i-][j-(<<c[i][k]-)];
if(f[i][j]>mod)f[i][j]%=mod;
}
}
}
int main()
{
freopen("shirt.in","r",stdin);
freopen("shirt.out","w",stdout);
scanf("%d",&T);
while(T--){
ans=;scanf("%d",&n);
memset(c,,sizeof(c));
memset(f,,sizeof(f));
for(int i=;i<=n;i++){
while(){
scanf("%d",&x);
c[x][++c[x][]]=i;
s=getchar();
if(s=='\n')break;
}
}
Solve();
printf("%d\n",f[][(<<n)-]);
}
return ;
}
conclusion
今天170
题目比较水 不是很高 而且 暴力分 没 的 全
QAQ
T1 数论啊 找找规律就水过了
T2 不会正解啊 想了好久也没想出来....
最后还是暴力
%的数据保证n<=
%的数据保证 n<=^
被数据坑了又
上次以为会有几个在这范围之间的
然后出了%40剩下都是最大的数据 还浪费了好久
这次长记性了 反正慢了 n*n*n和n*n区别不大
然而一个40 一个50
而且40的还打wa了 x==y==z.....
暴力wa了就很蛋疼了 又不能排...
T3 时间不多了 10分钟暴力...
正解简单状丫dp
应该能想出来的 可是吧
QAQ
总之还是能打快的就打快的 特别是数据范围不清楚的时候
还有就是 不要一个题卡太久 有时候说不定T3比T2好想
10.18 noip模拟试题的更多相关文章
- 10.27 noip模拟试题
1.铺瓷砖(tile.cpp/c/pas)[问题描述]有一面很长很长的墙. 你需要在这面墙上贴上两行瓷砖. 你的手头有两种不同尺寸的瓷砖,你希望用这两种瓷砖各贴一行.瓷砖的长可以用分数表示,贴在第一行 ...
- 10.26 noip模拟试题
enc[问题背景]zhx 和他的妹子聊天.[问题描述]考虑一种简单的加密算法.假定所有句子都由小写英文字母构成,对于每一个字母,我们将它唯一地映射到另一个字母.例如考虑映射规则:a->b, b- ...
- 10.11 noip模拟试题
4题均为128M,1s 1. 锻炼计划(exercise.pas) 身体是革命的本钱,OIers不要因为紧张的学习和整天在电脑前而忽视了健康问题.小x设计了自己的锻炼计划,但他不知道这个计划是否可行, ...
- 10.24 noip模拟试题
尼玛pdf依旧不会粘23333 /* 每段合并到总的里面 假设总的有X个 这一段有Y个 一共有X+1个空 那么就有 C(X+1,1)+C(X+1,2)+C(X+1,3)+...+C(X+1,Y) 这样 ...
- 10.13 noip模拟试题
Porble 1时间与空间之旅(tstrip.*) 题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship ...
- 10.8 noip模拟试题
1.花 (flower.cpp/c/pas) [问题描述] 商店里出售n种不同品种的花.为了装饰桌面,你打算买m支花回家.你觉得放两支一样的花很难看,因此每种品种的花最多买1支.求总共有几种不同的 ...
- 10.4 noip模拟试题
题目名称 PA 青春 三部曲 名称 huakai taritari truetears 输入 huakai.in taritari.in truetears.in 输出 huakai.out tari ...
- 10.3 noip模拟试题
希望[题目描述]网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈,“前进栈”.“后退栈”.这里你需要实现以下几个功能:BACK: 如果“后退栈”为空则忽略此命令. 否则将当前两面压入“ ...
- 10.25 noip模拟试题
今天题目略水2333 依旧不粘题目了23333 T1 /*数学题 给定n个斜率 求有多少个三元组 保证两两斜率不同 ans=C(n,3)-ΣC(len[i],2)*(n-len[i])-ΣC(len[ ...
随机推荐
- jQuery.Deferred对象
一.前言 jQuery1.5之前,如果需要多次Ajax操作,我们一般会使用下面的两种方式: 1).串行调用Ajax $.ajax({ success: function() { $.ajax({ su ...
- 随着visual studio 2013 发布.带来的一些变化
1.asp.net a.在2013中, asp.net走向了统一.使用不同的asp.net 框架搭(web forms ,api, mvc )建混合应用 b.身份验证 无身份验证 个人用户账户 (窗体 ...
- Contest20140710 eagleeggs
eagleeggs|eagleeggs.in|eagleeggs.out 题目描述: 共有N个硬度相同的鹰蛋,硬度是一个整数(并且已知其不大于H),表示这个蛋从天上掉下来不摔碎的最大高度.为了找出这个 ...
- 用JQUERY为INPUT的TXT类型赋值及取值操作
注意和纯JS操作的区别,一个是对象,一个是字串,如下说明: 在Jquery中,用$("#id")来获得页面的input元素,其相当于document.getElementById( ...
- 【HDU1538】A Puzzle for Pirates(经典的海盗问题)
[题目] Description A bunch of pirates have gotten their hands on a hoard of gold pieces and wish to di ...
- keil多文件组织方法
方法一 首先新建一个main.c的文件,加入到项目中,该文件中主要写main函数,然后,新建文件,如delay.c,编写内容之后,不要加入到项目,而是在main.c文件的开始写上#include“de ...
- KeilC51使用详解 (二)
深入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一.因为大多数扩展功能都是直接针对8051系列CPU硬件的.大致有以下8类: 8051存储类型及存储区域 存储模式 存储器类型声明 变量类 ...
- 【CF】270D Design Tutorial: Inverse the Problem
题意异常的简单.就是给定一个邻接矩阵,让你判定是否为树.算法1:O(n^3).思路就是找到树边,原理是LCA.判断树边的数目是否为n-1.39-th个数据T了,自己测试2000跑到4s.算法2:O(n ...
- 在html页面中利用ftp访问协议格式载入服务器图片
访问格式为:ftp://用户名:密码@服务器ip:服务器端口/具体文件路径 如下所示: <img src="ftp://lxj:123@127.0.0.1:21/IMG_2013051 ...
- QTP自动化测试权威指南 连载(一)
第一章 简介 什么是自动化测试 自动化测试是对一个已有的手工测试过程减少并尽可能排除人工干预的过程. 什么时候适合做自动化测试 下面是一组适合将手工测试自动化的考量因素: ● 测试需要经常重复. ● ...