摘要: 0/1分数规划问题,用二分解决!!代码如下:#include#include#include#include#include#include#define pi acos(-1.0)using namespace std;double a[1001],b[1001],an[1001];int main(){ int i,j,k,n; double l,r,sum,mid; while(cin>>n>>k){ if(n==0&&k==0) break; for(i=0;i>a[i]; for(i=0;i>b[i]; l=0... 阅读全文
posted @ 2013-08-02 22:14 _随心所欲_ 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 这题主要是推导数学公式!!!将概率问题转化为圆心所在的面积!代码如下:#include#include#include#include#include#include#define pi acos(-1.0)using namespace std;int main(){ int i=0,k; double a1,a2,a3,a4,sum,r,m,n,t,c; cin>>k; while(k--){ cin>>m>>n>>t>>c; r=c/2.0; sum=m*n*t*t; a2=c*((t-c)*n+c)*(m-... 阅读全文
posted @ 2013-08-02 21:32 _随心所欲_ 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 概率DP,递推式:dp[i][j]=sigma(dp[i-1][j]*p[j][k]*dp[i-1][k])再就是判断j和k是否相邻:if(((k>>(i-1))^1)==(j>>(i-1)))代码如下:#include#include#include#include#include#includeusing namespace std;double dp[129][129],p[129][129];int main(){ int i,j,k,ans,n; while(cin>>n){ if(n==-1) break; for(i=0;i>p[i][j 阅读全文
posted @ 2013-08-02 20:08 _随心所欲_ 阅读(197) 评论(1) 推荐(0) 编辑
摘要: 这个题有很多解法,不过还是觉得高斯消元比较好……以前用其他方法做的:#include#includeusing namespace std;int press[6][8];int puzzle[6][8];int main(){ int i,n; cin>>n; for(i=1;i>puzzle[j][k]; for(j=1;j1) { press[1][k+1]++; k++; press[1][k-1]=0; } ... 阅读全文
posted @ 2013-08-02 19:03 _随心所欲_ 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 看题就知道要使用高斯消元求解!代码如下:#include#include#include#include#includeusing namespace std;int an[70][71],p,ans[70];char str[71];int pows(int a,int b){ int ans=1; while(b){ if(b&1) ans=(ans*a)%p; b>>=1; a=(a*a)%p; } return ans%p;}int gcd(int a,int b){ if(aan[row][i]) row=j; ... 阅读全文
posted @ 2013-08-02 16:50 _随心所欲_ 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 由于数据量不大,所以这题有很多解法。我用的是高斯消元化为逆矩阵解决的……代码如下:#include#includeusing namespace std;int an[9][10]={{1,1,0,1,0,0,0,0,0,0},{1,1,1,0,1,0,0,0,0,0},{0,1,1,0,0,1,0,0,0,0},{1,0,0,1,1,0,1,0,0,0},{1,0,1,0,1,0,1,0,1,0},{0,0,1,0,1,1,0,0,1,0},{0,0,0,1,0,0,1,1,0,0},{0,0,0,0,1,0,1,1,1,0},{0,0,0,0,0,1,0,1,1,0}},ans[9];in 阅读全文
posted @ 2013-08-02 15:15 _随心所欲_ 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 看题就知道要用polya,但是当时没做出来,还是不是很熟悉polya!!!总共有24种置换:1. 不做任何旋转 K ^ (54 + 12 + 8)2. 绕相对面中心的轴转1) 90度 K ^ (15 + 3 + 2) * 31) 180度 K ^ (28 + 6 + 4) * 31) 270度 K ^ (15 + 3 + 2) * 33. 绕相对棱中心的轴转1) 180度K ^ (27 + 7 + 4) * 64. 绕相对顶点的轴转1) 120度K ^ (18 + 4 + 4) * 41) 240度K ^ (18 + 4 + 4) * 4代码如下:#includeint pows(int a, 阅读全文
posted @ 2013-08-02 10:09 _随心所欲_ 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 直接枚举就行了#include#include#include#include#include#include#include#define ll __int64#define pi acos(-1.0)#define SIZE 1024using namespace std;const int mod =1000000007;vectorp;int main(){ ll i,j,t; ll n,sum,num; while(cin>>n){ p.clear(); i=j=1; sum=0; num=(ll)sqrt(n... 阅读全文
posted @ 2013-08-02 09:34 _随心所欲_ 阅读(192) 评论(0) 推荐(0) 编辑