1007 正整数分组 1010 只包含因子2 3 5的数 1014 X^2 Mod P 1024 矩阵中不重复的元素 1031 骨牌覆盖
1007 正整数分组
第1行:一个数N,N为正整数的数量。
第2 - N+1行,N个正整数。
(N <= 100, 所有正整数的和 <= 10000)
输出这个最小差
5
1
2
3
4
5
1
这题不就是小李打怪兽吗,不知道谁模仿谁,呵呵,刚还是我编的题里的,dp,证明一下(要证明什么自己考虑)。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std; int n,sum;
bool boo[]; int main()
{
scanf("%d",&n);
boo[]=true,sum=;
int x;
for (int i=;i<=n;i++)
{
scanf("%d",&x);
for (int j=;j>=x;j--)
if (boo[j-x]) boo[j]=true;
sum+=x;
}
int i=sum/,j=sum-i;
while (!boo[i]||!boo[j]) i--,j++;
printf("%d\n",j-i);
}
1010 只包含因子2 3 5的数
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N(1 <= N <= 10^18)
共T行,每行1个数,输出>= n的最小的只包含因子2 3 5的数。
5
1
8
13
35
77
2
8
15
36
80
枚举处理出在范围内的所有满足条件的数+排序,然后二分找答案就可以了。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std; typedef long long LL;
const LL INF=1e18+; int n,cnt=;
LL a[]; void init()
{
for (LL i=;i<=INF;i*=)
for (LL j=;j*i<=INF;j*=)
for (LL k=;k*i*j<=INF;k*=)
a[++cnt]=i*j*k;
sort(a+,a+cnt+);
}
int main()
{
init();
scanf("%d",&n);
LL x;
for (int i=;i<=n;i++)
{
scanf("%lld",&x);
printf("%lld\n",*lower_bound(a+,a+cnt+,x));
}
}
1014 X^2 Mod P
两个数P A,中间用空格隔开。(1 <= A < P <= 1000000, P为质数)
输出符合条件的X,且0 <= X <= P,如果有多个,按照升序排列,中间用空格隔开。
如果没有符合条件的X,输出:No Solution
13 3
4 9
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std; int top=,p,a;
int ans[]={}; int main()
{
scanf("%d%d",&p,&a);
for (int i=;i<=p;i++)
{
long long x;
x=(long long)i*i;
if (x%p==a) ans[++top]=i;
}
if (top==) printf("No Solution\n");
else
{
for (int i=;i<top;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[top]);
}
}
1024 矩阵中不重复的元素
输入数据包括4个数:m,n,a,b。中间用空格分隔。m,n为矩阵的长和宽(2 <= m,n <= 100)。a,b为矩阵的第1个元素,a^b(2 <= a , b <= 100)。
输出不重复元素的数量。
4 3 2 2
11
一个hash的事情。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
#include<map>
using namespace std; typedef long long LL;
const LL mod=; int m,n,a,b,ans;
map<int,bool>p; int main()
{
scanf("%d%d%d%d",&m,&n,&a,&b);
ans=m*n;
for (int i=;i<=n;i++)
{
LL x=,jed=(a+i-);
for (int j=;j<b;j++)
x=x*jed%mod;
for (int j=;j<=m;j++)
{
x=x*jed%mod;
if (p[x]) ans--;
else p[x]=true;
}
}
printf("%d\n",ans);
}
1031 骨牌覆盖

输入N(N <= 1000)
输出数量 Mod 10^9 + 7
3
3
比铺砖块要水吧,转移的东西都少,一般的状态压缩。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std; const int mod=1e9+; int n,m,cnt=;
int f[][]={};
struct Node
{
int x,y;
}next[]; void dfs(int num,int sta,int old)
{
if (num>m) return;
if (num==m)
{
next[++cnt].x=old;
next[cnt].y=sta;
return;
}
dfs(num+,(sta<<)+,old<<);
dfs(num+,sta<<,old<<);
dfs(num+,sta<<,(old<<)+);
}
int main()
{
scanf("%d",&n);
m=;
dfs(,,);
f[][]=;
for (int i=;i<=n;i++)
for (int j=;j<=cnt;j++)
{
int x=next[j].x,y=next[j].y;
f[i][y]=(f[i][y]+f[i-][x])%mod;
}
printf("%d\n",f[n][]);
}
1007 正整数分组 1010 只包含因子2 3 5的数 1014 X^2 Mod P 1024 矩阵中不重复的元素 1031 骨牌覆盖的更多相关文章
- 51nod 1010 只包含因子2 3 5的数 二分答案
1010 只包含因子2 3 5的数 K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 > ...
- 51nod 1010 只包含因子2 3 5的数 打表
只包含因子2 3 5的数 题目连接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 Description K的 ...
- 51Nod 1010 只包含因子2 3 5的数 Label:None
K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...
- 51Nod 1010 只包含因子2 3 5的数
K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...
- 51Nod 1010 只包含因子2 3 5的数(打表+二分)
K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...
- 51Nod 1010 只包含因子2 3 5的数 | 预处理+二分
Input示例 5 1 8 13 35 77 Output示例 2 8 15 36 80 分析:将所有的只含有2 3 5因子的数打一个表保存在一个数组里,然后二分查找第一个>=数组里的数,输出 ...
- 51nod 1010 只包含因子2 3 5的数 && poj - 1338 Ugly Numbers(打表)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 http://poj.org/problem?id=1338 首先 ...
- 只包含因子2 3 5的数(51NOD 1010)
K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...
- 51 Nod 1007 正整数分组【类01背包】
1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组, ...
随机推荐
- https加密实现
author:JevonWei 版权声明:原创作品 在httpd安装完成的基础上实现https加密 安装mod_ssl软件包 yum -y install mod_ssl http -M 显示mod_ ...
- apache如何设置缓存
基本介绍 httpd是一个比较经典的web服务器,也就是静态资源服务器,主要用来服务于一些静态的文件,例如css,js,html等文件,所谓的静态文件,也就是不需要通过服务器进行运行的文件. 在使用静 ...
- Spring @ResponseBody 返回中文乱码问题
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt102 今天在使用spring 的时候,发现中文返回的是乱码. 经过研究发现, ...
- jquery 函数大全
jquery函数大全转载 Attribute:$(”p”).addClass(css中定义的样式类型); 给某个元素添加样式$(”img”).attr({src:”test.jpg”,alt:”te ...
- 八,ESP8266 文件保存数据
应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 一, http://www.c ...
- CCIE-MPLS VPN-实验手册(上卷)
看完了看完了看完了,豪爽豪爽豪爽,一个月了,写得挺棒.总共14个mpls vpn的实验,为留下学习的痕迹,原封不动献出. CCIE实验手册 (路由部分-MPLSVPN基础篇) [CCIE] JUST ...
- Flask05 cookie
1 什么是cookie 就是网站存放到你浏览器中的一部分固定内容:当你下次访问我这个网站的时候,你会把之前我存放到你浏览器中的数据带回来给我 你要先登录(用户名.密码) -> ...
- 201521123109《java程序设计》第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 ...
- 201521123004 《Java程序设计》第3周学习总结
1. 本周学习总结 (1)①使用构造函数(constructor) eg:Date now = new Date(); new Date(); //创建了一个Date对象 now是Date类型变量,存 ...
- windows消息机制与实例
windows发送窗口消息 所需工具:spy++,visual studio 2017,c#语言 技术路线:首先通过spy++获得所要操纵的窗口的句柄,函数的原型声明为: [DllImport(&qu ...